diff --git a/backend/app/pipeline.py b/backend/app/pipeline.py index 1ae1ff6..d9766ae 100644 --- a/backend/app/pipeline.py +++ b/backend/app/pipeline.py @@ -391,6 +391,9 @@ def _process_article(article: dict[str, Any], stats: PipelineStats, settings: An except Exception as exc: logger.error("Draft-Erstellung für #%d fehlgeschlagen: %s", article_id, exc) update_article_status(article_id, "error", actor="pipeline", note=f"Draft-Fehler: {exc}") + # Release reserved slot so it's not permanently blocked by a failed article + from .scheduler import release_publish_slot + release_publish_slot(article_id) raise diff --git a/backend/app/scheduler.py b/backend/app/scheduler.py index 0ec38d8..ff5cecf 100644 --- a/backend/app/scheduler.py +++ b/backend/app/scheduler.py @@ -45,7 +45,7 @@ def _fetch_wp_occupied_slots() -> set[tuple[str, int]]: settings = get_settings() try: auth = base64.b64encode( - f"{settings.wordpress_username}:{settings.wordpress_password}".encode() + f"{settings.wordpress_username}:{settings.wordpress_app_password}".encode() ).decode() url = ( f"{settings.wordpress_base_url}/wp-json/wp/v2/posts"