Task Error Codes

The codes the framework sets on a failed task or a refused start. A worker's harness may report its own codes too. Generated from the code that sets them.

Dispatch and start (TaskStartError, and the TaskError a start becomes)

CodeRetryableRevivableMeaning
dispatch_transport_unavailableyesnois set when the dispatch could not reach the relay or worker with a transient transport error. Nothing ran, so the start may be retried.
startup_timeoutyesnois set when the worker did not report the task accepted within the start wait. Retryable.
resume_task_not_foundyesnois set when a resume names a task the worker does not have. Retryable, usually by re-dispatching the task.
resume_interruptedyesnois set when a resume was cut short by a cancelled or expired context. Retryable.
advisor_request_setup-nois set when the start advisor stopped the start with the request_setup action: the task needs setup before any worker can run it.
advisor_reroute-nois set when the start advisor stopped the start with the reroute action: the task should go to a different worker or placement.
advisor_rewrite_contract-nois set when the start advisor stopped the start with the rewrite_contract action: the task contract has to change before it can be placed.
advisor_switch_to_artifact_flow-nois set when the start advisor stopped the start with the switch_to_artifact_flow action: the task should pass its inputs as artifacts.
advisor_block_with_reason-nois set when the start advisor blocked the start and gave the reason in the message.
advisor_choose_next_action-nois set when the start advisor stopped the start and left the next action to the caller.
worker_draineddependsnois set when the target worker is draining and refuses new dispatches, itself or through the relay. Retryable on another worker.
worker_not_connectedyesnois a dispatch the relay answered NotFound before the worker accepted it: the relay could not deliver the assignment's first frame to the worker (not connected, or gone past the relay's first-frame hold), so nothing ran. Retryable on another placement; never resumed (in no revivable catalog).
at_capacityyesnois set when the worker has no free task slot for a new dispatch. Retryable later or elsewhere.
recovery_blocked_dirty_worktreeyesnois set when a resume is blocked because the worktree holds uncommitted work and the earlier process's child could not be stopped. An operator or the hub has to resolve it.
no_worker_satisfies_requirementsnonois set when no connected worker meets the task's requirements. Not retryable until the requirements or the worker pool change.

Transport and lifecycle

CodeRetryableRevivableMeaning
stream_erroryesyesis set when the task stream to the worker failed on receive or could not be opened. Retryable.
worker_disconnectedyesyesis set when the worker closed the stream before accepting the task or closed it unexpectedly. Retryable.
transport_lost-yesis set when the worker stayed unreachable past the transport-lost timeout and confirmed it stopped the task. Retryable.
worker_zombie_reapedyesyesis set when the zombie reaper fails a task whose assigned worker emitted no messages past the idle window. Retryable.
max_runtime_exceedednonois set by the worker when a task ran past its hard max_runtime_ms cap. The worker stops it to free the slot.
worker_reincarnatednonois set when the worker process restarted and lost the task. Not retryable.
task_not_founddependsyesis set when the worker does not have an active task with that id on resume. Retryable.
acceptance_lapsednoyesis set by the worker when a task stayed unaccepted past its acceptance timeout. A late task.progress can revive it.
no_changes_needed-nois not set by the framework. A harness may report it for a task that made no changes; the framework then treats it as a success for read-only tasks and as a failure for mutating ones.
ghost_sweptnonois set when the ghost sweep finds a task stuck in accepted or pending past its threshold with no live session. Not retryable.
supersedednonofails an attempt that was still open when its owner moved past it. It is final (in no revivable catalog).

Worker refusals and harness start

CodeRetryableRevivableMeaning
worker_scope_refusedyesnois a worker's refusal of a task outside its operator's scope (WorkerConfig.RefuseTask): retryable elsewhere, never on this worker.
harness_refusednonois a task whose harness adapter exited at startup refusing its configuration (mcpclient.ConfigRefusedExitCode, e.g. a model the harness does not offer). The message carries the adapter's own reason; it is not retryable, since the same command refuses again.
rate_limited-nois emitted when the worker recognises a Claude API rate-limit notice in an otherwise-opaque failure message: such a TaskError is rewritten to this code so the hub can tell "Anthropic told us to back off" apart from a real worker fault.

Artifacts and workspace inputs

CodeRetryableRevivableMeaning
artifact_transfer_incompatiblenonorefuses a transfer between peers whose artifact_transfer stamps do not match.
workspace_artifacts_failednonois the task error a worker emits when WorkerConfig.MaterializeWorkspaceArtifacts rejects the task's dependency inputs (integrity mismatch, patch that does not apply). It is not retryable: the same inputs fail the same way until the hub changes them.
startup_artifacts_incompleteyesnois the task error a worker emits when declared startup artifacts did not finish transferring within startupArtifactTransferGrace. It is retryable: the transfer may succeed on another attempt, and the hub decides whether to retry or replan.

Worker runtime, session messages, setup, watchdogs and recovery

CodeRetryableRevivableMeaning
abandoned_stale_runningnonois set when the ghost sweep finds a running task with no live session past its threshold. Not retryable.
approval_rejectednonois set when a person rejected the task's pending approval. Not retryable.
artifact_replay_integrity_failednonois set when an artifact replayed to a reattached task fails its integrity check.
artifact_resume_gap-nois set when an artifact transfer resumes beyond the bytes the receiver holds. Nothing is corrupt; the transfer must start over.
artifact_store_commit_failed-nois set when the receiver could not commit a received artifact to its store.
artifact_transfer_failedyesnois set when the worker could not receive or prepare the artifacts the task starts with. Retryable.
artifact_transfer_incompleteyesnois set when the worker closed before an artifact transfer finished. Retryable.
auto_resume_redispatch_exhaustednonois set when auto-resume re- dispatched a task the worker lost as often as allowed and gives up.
binding_lostnoyesis set when a status query finds a task stuck in accepted beyond twice its budget: the orchestrator lost its session binding. Not retryable.
cancellednonois set when the task was cancelled and the cancel reason is its message. Not retryable.
conflicting_result_identitynonois set when a result carries a receipt for a different task id than the one assigned. Not retryable.
continuation_restore_failednonois set by the worker when it could not restore the partial work of the session a continuation task reattaches.
contract_violationnonois set when a result breaks the task contract (output validation or acceptance gates). The message lists the violations. Not retryable.
dependency_failednonois set when a parent task did not complete successfully, so the dependent task fails without running.
input_artifact_transfer_failedyesnois set when sending the artifacts of a follow-up input to the worker failed or was denied. Retryable.
input_wait_failedyesnois set by the worker when waiting for the answer or input a task asked for failed. Retryable.
invalid_artifact_offer-nois set when a worker's artifact offer is malformed or rejected.
invalid_artifact_request-nois set when a worker's artifact request is malformed or rejected.
invalid_artifact_transfer-nois set when an artifact transfer is rejected for a reason other than a store commit failure or a resume gap.
invalid_handoff_envelopenonois set by the worker when the handoff request its harness produced is malformed.
invalid_mcp_responsenonois set by the worker when the harness's tool response is not valid for the task protocol.
invalid_messagenonois set when a message from the worker cannot be decoded.
invalid_task_accepted-nois set when the worker's task.accepted payload is invalid.
invalid_task_errornonois set when the worker's task.error payload is invalid; the error is replaced by this code.
invalid_task_handoff_request-nois set when the worker's task.handoff_request payload is invalid.
invalid_task_loop_decision-nois set when the worker's task.loop_decision payload is invalid.
invalid_task_progress-nois set when the worker's task.progress payload is invalid.
invalid_task_question-nois set when the worker's task.question payload is invalid.
invalid_task_recovered-nois set when the worker's task.recovered payload is invalid.
invalid_task_result-nois set when the worker's task.result payload is invalid.
invalid_task_rework_request-nois set when the worker's task.rework_request payload is invalid.
invalid_task_verification-nois set when the worker's task.verification payload is invalid.
max_turns_exceededyesnois set by the worker when the task used up its maximum number of turns. Retryable.
mcp_call_failedyesnois set by the worker when the harness tool call failed. Retryable.
mcp_connect_failed-nois set by the worker when it could not connect to the task's harness.
mcp_initialize_failed-nois set by the worker when the harness connected but its initialize step failed.
mcp_tool_missingnonois set by the worker when the harness does not offer the tool the task needs.
mcp_tools_failed-nois set by the worker when listing the harness's tools failed.
node_lost-nois set by a worker that stops because its owning node or parent process exited. It fails the worker's open tasks first.
orphan_after_reconnectnonois set by a worker that reconnects and finds the orchestrator no longer tracks one of its tasks. It fails and releases the task.
result_manifest_build_failednonois set when the signed result manifest could not be built. Not retryable.
result_manifest_sign_failednonois set when signing the result manifest failed. Not retryable.
result_manifest_signing_unavailablenonois set when a signed result manifest is required but no signer is configured. Not retryable.
result_manifest_verify_failednonois set when the result manifest failed verification; the message gives the reason. Not retryable.
silent_no_progressnoyesis set by the worker when a task emitted no events within its silence timeout. The worker fails it to free the slot.
startup_failedyesnois set when the orchestrator failed to start the task, for example when sending its startup artifacts fails. Retryable.
stuck_in_acceptednonois set by the worker when a task stayed accepted past its timeout without running. The worker fails it to free the slot.
surface_violationnonois set when a task changed paths outside the allowed surfaces of its contract.
task_already_attachedyesnois set when the worker's task is still attached to another transport and cannot be attached again. Retryable.
task_cancellednonois set when a reattach is refused because the task already has a cancel intent. Not retryable.
task_existsyesnois set by a worker that already has a task with that id; the dispatcher should resume it instead. Retryable.
task_failed-nois the fallback code when a task fails on an artifact egress decision that names no code. Retryable.
timeoutyesnois set by the worker when the task's deadline passed. Retryable.
unsupported_execution_profileyesnois set by the worker when it does not support the requested execution profile. Retryable on another worker.
verification_failednonois set by the worker when a verification of the task's work came back failed. Not retryable.
worker_poll_terminalnonois set when a proactive status poll finds the task failed on the worker, before the worker's own error arrived.
workspace_provision_faileddependsnois set by the worker when it could not provision the task's workspace. Retryable unless the workspace is unavailable.

Hub

Codes the hub sets itself.

CodeMeaning
budget_exceededprefixes the error of a turn a budget ended.
no_paired_deviceStructured error codes message_owner returns.
remote_messages_offStructured error codes message_owner returns.
too_many_open_requestsStructured error codes message_owner returns.
unknown_requestStructured error codes message_owner returns.

A few older entries, kept so earlier task histories still read, are not listed.