Overview
Your scheduled workflow (defined in config.yml with triggers: - schedule:) was running daily and stopped without any changes to your configuration. This is usually caused by a follower/token issue or by a config error on a non-scheduled build.
No valid project followers
Scheduled workflows require at least one active project follower with a valid OAuth token. If all followers have left the organization, unfollowed the project, or their tokens have expired, the schedule stops silently. This happens after third unsuccessful attempt to trigger the workflow.
How to check:
- There is no UI to see a list of project followers. Go to the Projects page and check if the Follow button appears next to your project. If it does, no one on your team may be following it.
How to fix:
- Go to Projects in the sidebar.
- Find the project and click Follow.
- If the Follow button gives an error, check your VCS repository settings for duplicate CircleCI webhooks and remove any extras.
The schedule should resume on the next scheduled time after a valid follower is added.
A config error unscheduled the workflow
If a non-scheduled build on the same branch (usually main or master) triggers a Config Processing Error, CircleCI unschedules all scheduled workflows on that branch. The schedules will not resume until a successful build with a valid config runs on that branch.
How to check:
- Look at the most recent non-scheduled pipeline on the target branch. If it shows a build error or config processing error, that is the cause.
How to fix:
- Fix any issues in your
.circleci/config.yml. - Push a commit to the target branch.
- Confirm the build succeeds.
The scheduled workflow will be automatically re-registered after a successful build.
Using multiple pipelines with different config files
If your project has more than one pipeline definition (for example, a main pipeline using .circleci/config.yml, and an additional pipeline which uses .circleci/config-2.yml), legacy scheduled workflows can be removed when a pipeline runs on the same branch using a config that does not include triggers: schedule:.
Legacy scheduled workflows are registered per branch, not per pipeline. When CircleCI processes config for a branch:
- If the config includes schedule triggers → schedules for that branch are registered
- If the config does not include schedule triggers → schedules for that branch are removed
So if Pipeline A uses .circleci/config.yml (with schedules) on main, and Pipeline B also runs on main using a different config without schedules, Pipeline B can remove the schedules for main.
Symptoms
- Expected schedule slots create no pipeline
- Other pipelines (push, PR, API) on the same branch continue to work
- Schedules may return after a later run that processes the config containing the schedules
- Gaps can look intermittent if both configs run regularly on the same branch
How to check
- In Project Settings → Project Setup, list your pipelines and their config file paths.
- Identify which config contains your
triggers: schedule:blocks. - Confirm which branch those schedules target.
- Around the time schedules stopped, check whether another pipeline ran on that same branch using a different config file without schedule triggers.
- Check whether schedules resumed after a later pipeline that used the config containing the schedules.
How to fix
- If alternate-config pipelines do not need to run on the scheduled branch: change their triggers so they run on other branches or event types instead.
-
If multiple pipelines must run on the same branch (for example
main): re-running the config that contains your schedules will re-register them after they have been removed. This is only a temporary workaround. Schedules can be cleared again the next time a schedule-less config runs on that branch. For a lasting fix, migrate to Scheduled Triggers and removetriggers: schedule:from config.
Scheduled workflows vs. scheduled pipelines
This article covers scheduled workflows (defined in config.yml using triggers: - schedule:). If you are using scheduled pipelines (defined in the UI under Project Settings → Triggers), see Scheduled pipelines instead. Scheduled pipelines have different triggering mechanics and are not affected by project followers.
Comments
Article is closed for comments.