CircleCI Scheduled Pipeline Not Running - Fix Schedules
A nightly or periodic pipeline never fires. Usually the old in-config triggers: schedule cron was deprecated in favor of scheduled pipelines, the schedule targets a branch with no matching workflow, or it sets parameters the config does not declare.
What this error means
No pipeline appears at the scheduled time, and there is no failure to point at - the run simply never starts. Manual triggers on the same branch work, so the config is valid; only the schedule is not producing runs.
# legacy, no longer triggers:
workflows:
nightly:
triggers:
- schedule:
cron: "0 2 * * *"
filters: { branches: { only: main } }
# -> deprecated; use Scheduled Pipelines insteadCommon causes
Legacy in-config cron deprecated
The old triggers: schedule block in workflows was deprecated. Pipelines now need a Scheduled Pipeline (UI/API) that sets pipeline parameters; the legacy cron silently stops firing.
Schedule targets a branch with no matching workflow
A scheduled pipeline runs against a branch and sets parameters. If the config’s when conditions don’t enable a workflow for that branch/parameters, nothing runs.
Schedule sets undeclared parameters
The scheduled pipeline passes parameters the config never declared, so the triggered pipeline is rejected before scheduling any jobs.
How to fix it
Gate the nightly workflow on a scheduled parameter
parameters:
scheduled:
type: boolean
default: false
workflows:
nightly:
when: << pipeline.parameters.scheduled >>
jobs:
- full-regressionVerify the schedule’s branch and parameters
- Confirm a Scheduled Pipeline exists (legacy in-config cron no longer triggers).
- Point it at a branch whose config enables the intended workflow.
- Pass only declared pipeline parameters from the schedule.
How to prevent it
- Migrate off legacy
triggers: scheduleto Scheduled Pipelines. - Gate scheduled-only workflows on a declared boolean parameter.
- Confirm the schedule’s target branch enables the workflow.