Pipeline Stuck in Failed State
When you try to redeploy or restart a failed pipeline, you get 409 CONFLICT errors because the edge thinks the job is still running.
Fixed in Latest Version
This issue was fixed in the latest version of Expanso Edge. Terminal executions (Complete, Failed, Stopped) are now automatically cleaned up when starting new executions. If you're experiencing this problem, upgrade to the latest version.
Symptoms
On older versions, you'll see this sequence in the logs:
# 1. Pipeline fails with runtime error
ERR failed assignment (line 1): expected string value, got null
execution_id=e-8fa2319e-... pipeline_id=j-465ba85c-...
# 2. Job marked as failed
INF Updating job state new_state=failed reason="Daemon execution completed unexpectedly"
# 3. Orchestrator retries every 30 seconds
INF Processing RunExecution request execution_id=e-2aeb1b32-...
# 4. Edge rejects with 409 CONFLICT
ERR Failed to start execution component=execution_scheduler
error.code=CONFLICT error.http_status=409
error.message="pipeline j-465ba85c-... is already running with a different execution"
# 5. Retry loop continues indefinitely
INF Degraded execution - backoff elapsed, retrying ...
ERR Failed to start execution ... error.code=CONFLICT
Why This Happens
When a pipeline fails, the edge node keeps the failed execution in its tracking map. New execution attempts get rejected because the edge thinks the job is still running—even though the runner is in a failed state.
Workaround
Manually stop the job before redeploying:
# Stop the stuck job
expanso-cli job stop <job-name>
# Wait a few seconds for cleanup
sleep 5
# Redeploy (with fixed configuration if needed)
expanso-cli job deploy your-pipeline.yaml