CircleCI "Error calling workflow" - Fix Workflow Job Refs
A workflow references a job that CircleCI cannot find, or a requires: points at a job not in the same workflow. The workflow definition does not line up with the jobs: map.
What this error means
Validation fails with "Error calling workflow" naming the job it could not resolve. The pipeline is rejected because the workflow graph references something that does not exist.
Error calling workflow: "ci"
Error calling job: "deploy"
Job not defined: "build-and-test"
Error: Config is invalidCommon causes
Workflow references an undefined job
A job name under workflows.<name>.jobs has no matching entry in the top-level jobs: map (or an orb job), usually a typo or a renamed job.
A requires dependency names a missing job
requires: [build-and-test] must reference a job present in the same workflow. A mismatch breaks the dependency graph.
Matrix or alias name mismatch
When a job is invoked with a name: alias or via a matrix, requires: must use that alias, not the underlying job name.
How to fix it
Align workflow job names with the jobs map
jobs:
build-and-test:
docker: [{ image: cimg/node:20.11 }]
steps: [checkout, { run: npm test }]
deploy:
docker: [{ image: cimg/node:20.11 }]
steps: [checkout, { run: ./deploy.sh }]
workflows:
ci:
jobs:
- build-and-test
- deploy:
requires: [build-and-test]Use the alias in requires when you rename a job
- If you give a job a
name:in the workflow, reference thatnameinrequires:. - For matrix jobs, reference the generated alias, not the base job name.
- Run
circleci config validateto confirm the graph resolves.
How to prevent it
- Keep workflow job names identical to the
jobs:keys, or use explicit aliases consistently. - Validate config on every PR so a broken graph fails before merge.
- Avoid copy-pasting
requires:without updating the referenced names.