Error Codes
Machine-readable error codes the orchestrator prints in square brackets, e.g. [driver_config_invalid]. They appear in apply output, validation diagnostics, and task logs — concentrated on the first-run path. This page is the glossary: what each code means, what triggers it, and what to do.
The entry set below is compared against the source-derived set in CI (scripts/qa/test-error-code-glossary.sh, via qa-doc-lint): a code added to the product without a glossary entry fails the build, and so does an entry whose code no longer exists. Run orchestrator guide error-codes for the CLI pointer to this page.
legacy_agent_command_deprecated
Meaning: a
kind: Agentmanifest setsspec.commandbut omitsspec.driver. This is the deprecated pre-driver authoring form.Trigger:
orchestrator applyon such a manifest. The apply succeeds: the warning announces that the Agent is promoted to an explicitshell/clidriver when persisted.Action: add the typed driver to the manifest so the promotion is explicit:
yamlspec: driver: provider: shell transport: cliSee Agent Driver Model.
legacy_agent_execution_removed
- Meaning: the scheduler was asked to execute an Agent whose stored record has no typed driver — a record persisted before driver promotion existed.
- Trigger: task execution selects such an Agent.
- Action: re-apply the Agent manifest. Apply promotes command-only configuration to
shell/cliand the stored record gains its driver.
legacy_coordination_removed
- Meaning: a Workflow step uses
behavior.captures, part of the removed CEL/capture coordination mechanism (DD-137). - Trigger:
orchestrator applyormanifest validateon a Workflow carryingbehavior.captures. The manifest is rejected. - Action: delete the
capturesblock and use typed driver/tool results instead. See Coordination Tools.
legacy_json_path_removed
- Meaning: a Workflow step uses a JSONPath-backed post-action (
spawn_tasks/generate_items), removed with the same coordination collapse. - Trigger:
orchestrator applyormanifest validateon such a Workflow. The manifest is rejected. - Action: replace the post-action with typed daemon tools. See Coordination Tools.
legacy_pipeline_variables_removed
Meaning: a Workflow step authors a pipeline variable through one of the four retired step-level constructs —
store_inputs,store_outputs,step_vars, or astore_putpost-action. All four routed an author-chosen value through the generic pipeline-variable map retired by the coordination collapse (DD-169).Trigger:
orchestrator applyormanifest validateon such a Workflow, including when the construct sits insidechain_steps. The manifest is rejected and the diagnostic names which of the four you used.Action: have the step address the store itself, which needs no binding:
yamlcommand: >- LAST_SHA="$(orchestrator store get promotion last_published_sha --project {project_id} 2>/dev/null || true)" && ...{project_id}renders from the task context, so nothing has to be pre-substituted into the step. For an agent step, put the same command in the prompt and let the agent run it. Forstep_vars, write the value directly into the step's own command or prompt. See Coordination Tools.
legacy_runner_executor_removed
- Meaning: the manifest sets
runner.executor: streaming, a removed execution mode.runner.executorsurvives only as a parse-only compatibility field for the historicalshellvalue. - Trigger:
orchestrator applyon a manifest withrunner.executor: streaming. The manifest is rejected. - Action: delete
runner.executorand configure each Agent'sspec.driverinstead (shell/cli,claude/cli, orcodex/cli).
driver_config_invalid
- Meaning: an Agent's
spec.driverblock contradicts itself or its Agent. The message carries the specific reason — for exampledriver shell/cli requires agent.spec.command, a provider given configuration belonging to a different provider, orclaude driver constructs its command; agent.spec.command must be omitted. - Trigger:
orchestrator applyor workflow validation touching the Agent. - Action: fix the named field. The rules:
shelldrivers keepspec.command;claude/codexdrivers must not have one; each provider accepts only its own sub-block (shell:,claude:,codex:).
driver_raw_args_unsafe_mode_required
- Meaning: an Agent driver sets
rawArgs, which bypasses provider flag construction and is only honored when the daemon runs in unsafe mode. - Trigger:
orchestrator applyof such an Agent against a daemon not in unsafe mode. - Action: remove
driver.rawArgs(preferred), or run the daemon in unsafe mode when the raw flags are genuinely required.
driver_multi_turn_required
- Meaning: a Workflow step declares multi-turn driver requirements, and a candidate Agent's driver cannot hold a multi-turn session.
- Trigger: workflow validation at apply time; the pairing is rejected.
- Action: give the step an Agent with a multi-turn-capable driver (Claude CLI), or drop the multi-turn requirement from the step.
driver_tool_hosting_required
- Meaning: the step requires hosted tool transport that the candidate Agent's driver does not provide.
- Trigger: workflow validation at apply time.
- Action: select a driver with the requested tool transport, or set the step's
toolHostingrequirement to one the driver supports.
driver_session_resume_required
- Meaning: the step requires session resume and the candidate driver cannot resume provider sessions.
- Trigger: workflow validation at apply time.
- Action: use a session-resume-capable driver (Claude or Codex CLI), or remove the
sessionResumerequirement.
driver_permission_events_required
- Meaning: the step carries an approval gate that needs the driver to emit permission request events, and the candidate driver cannot.
- Trigger: workflow validation at apply time.
- Action: use a permission-event-capable driver, or remove the approval gate from the step.
driver_workspace_sandbox_required
- Meaning: the step declares workspace access, which requires a sandboxable driver, and the candidate driver is not sandboxable.
- Trigger: workflow validation at apply time.
- Action: use a sandboxable CLI driver, or set the step's
workspaceAccesstonone.
driver_guaranteed_cancel_required
- Meaning: the step is classified
nonIdempotentExternal, which demands a driver with guaranteed cancel semantics, and the candidate driver only offers best-effort cancellation. - Trigger: workflow validation at apply time.
- Action: use a guaranteed-cancel driver, or make the external operation idempotent and reclassify the step.
driver_transport_unavailable
- Meaning: the Agent driver declares
transport: sdk. The SDK transport is a reserved shape with no implementation;cliis the only executable transport. - Trigger: workflow validation at apply time.
- Action: change the driver's
transporttocli.
empty_change_check
- Meaning: the post-implement safety self-test found no repository changes after an implement step —
git diff --stat HEADcame back empty, so running the check suite would certify nothing. - Trigger: task execution, after an implement-class step completes; the item fails with this code in
task logs. - Action: inspect the implement agent's output. The agent finished without producing changes — usually a goal the agent judged already done, or a prompt that did not reach the working directory it was meant to edit.
FILE_SHARING_GLOBAL_SKILL_UNTRUSTED
- Meaning: a globally shared Skill directory failed the trust check; the daemon refuses to expose it to agents. The message names the directory, the reason, and a suggested fix.
- Trigger: file-sharing configuration load, when a global Skill directory is not owned or permissioned the way the trust policy demands.
- Action: apply the
suggested_fixin the message — typically correcting the directory's ownership or permissions, or removing the untrusted entry from the shared configuration.