Turborepo "pipeline" field removed in turbo 2.0 in CI
Turborepo 2.0 renamed the top-level pipeline key in turbo.json to tasks. After upgrading turbo, a config that still uses pipeline fails validation because the field is no longer recognized.
What this error means
After bumping turbo to 2.x, turbo fails saying the pipeline field is unknown or that turbo.json must use tasks.
Turborepo
x found `pipeline` field in turbo.json
`pipeline` has been renamed to `tasks`. Run `npx @turbo/codemod migrate`Common causes
turbo.json still uses the 1.x pipeline key
The config predates turbo 2.0 and keeps the removed pipeline field that the new version no longer accepts.
A partial upgrade left mixed schema
turbo was bumped to 2.x in the lockfile but turbo.json was not migrated to the tasks schema.
How to fix it
Run the official codemod
- Run the turbo migrate codemod to rewrite
pipelinetotasks. - Review the diff to
turbo.json. - Commit and re-run CI.
Terminal
npx @turbo/codemod migrateRename the field by hand
Change the top-level pipeline key to tasks; the task definitions underneath stay the same.
turbo.json
{
"$schema": "https://turbo.build/schema.json",
"tasks": { "build": { "outputs": ["dist/**"] } }
}How to prevent it
- Run the migrate codemod as part of any turbo major upgrade.
- Pin turbo so a background bump does not desync the schema.
- Reference the turbo
$schemaso the editor flags the removed field.
Related guides
Turborepo "error preparing engine: Invalid task configuration" in CIFix Turborepo "error preparing engine: Invalid task configuration" in CI - a task in turbo.json references a…
Turborepo "could not find turbo.json" in CIFix Turborepo "could not find turbo.json" in CI - turbo runs outside the repo root or the config file is miss…
Turborepo "failed to read package.json" in CIFix Turborepo "failed to read package.json" in CI - turbo could not parse a package manifest, usually invalid…