Skip to content
Latchkey

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

  1. Run the turbo migrate codemod to rewrite pipeline to tasks.
  2. Review the diff to turbo.json.
  3. Commit and re-run CI.
Terminal
npx @turbo/codemod migrate

Rename 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 $schema so the editor flags the removed field.

Related guides

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