Skip to content
Latchkey

GitHub Actions cancel-in-progress cancels a deploy mid-flight

concurrency with cancel-in-progress: true cancels the running job when a newer run joins the same group. For CI that is desirable, but for deploys it can interrupt a half-applied release, leaving infrastructure in an inconsistent state.

What this error means

A deploy job is cancelled mid-run when a subsequent push triggers another run in the same concurrency group.

github-actions
concurrency:
  group: deploy-prod
  cancel-in-progress: true   # a new push cancels the in-flight prod deploy

Common causes

cancel-in-progress applied to deploys

Deployments should usually finish, not be preempted by a newer run.

Shared group between CI and deploy

Reusing one group for fast CI and slow deploys lets CI churn cancel deploys.

How to fix it

Queue deploys instead of cancelling

  1. Set cancel-in-progress: false for deploy concurrency so runs queue and complete.
  2. Use a dedicated deploy group separate from CI.
.github/workflows/deploy.yml
concurrency:
  group: deploy-prod
  cancel-in-progress: false

Separate CI and deploy groups

  1. Give CI its own cancel-in-progress group and deploys a serialized group.
  2. This prevents CI activity from preempting deploys.

How to prevent it

  • Use cancel-in-progress: false for deployments.
  • Keep deploy and CI concurrency groups distinct.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →