coleam00/Archon · error · Error
${err.message}
Error message
${err.message} What it means
A message returned when a workflow gate continuation cannot be resolved: the handler caught an error while attempting to continue a paused run (logged as cmd.workflow_gate_continuation_unresolved with the error type and runId). The command still reports success:true but includes this err.message plus a resume hint telling the user to run `/workflow resume <runId>` once the blocker is fixed.
Source
Thrown at packages/core/src/handlers/command-handler.ts:404
* "failed" about a gate that IS resolved would send the user to re-approve a run
* that refuses a second decision.
*/
async function withRunContinuation(
runId: string,
workflowCwd: string,
headline: string,
action: 'approve' | 'reject' | 'respond'
): Promise<CommandResult> {
let continuation: Awaited<ReturnType<typeof resolveRunContinuation>>;
try {
continuation = await resolveRunContinuation(runId, workflowCwd);
} catch (error) {
const err = error as Error;
getLog().warn(
{ err, errorType: err.constructor.name, runId, action },
'cmd.workflow_gate_continuation_unresolved'
);
continuation = { ok: false, message: err.message };
}
if (!continuation.ok) {
const hint =
continuation.resumeHint ?? `Resume it with \`/workflow resume ${runId}\` once that is fixed.`;
return {
success: true,
message: `${headline}\nThe run could not be continued automatically: ${continuation.message}\n${hint}`,
};
}
return {
success: true,
message: `${headline}\nResuming \`${continuation.workflowName}\`...`,
workflow: continuation.workflow,
};
}
async function handleWorktreeCommand(
conversation: Conversation,View on GitHub (pinned to 0773b97458)
Solutions
- Follow the hint in the message: run `/workflow resume <runId>` after addressing any stated blocker.
- Check the run's current state (`/workflow status <runId>`) — it may already be resolved by another actor.
- Inspect the structured log event cmd.workflow_gate_continuation_unresolved for the underlying errorType and stack.
- If the workflow definition changed mid-run, re-run the workflow from scratch instead of resuming.
Example fix
// before /workflow approve 42 # -> continuation unresolved // after /workflow status 42 /workflow resume 42
Defensive patterns
Strategy: retry
Validate before calling
// Before acting on a gate, confirm the run is still paused and resolvable:
const run = await getRun(runId);
if (run.status !== 'paused') throw new Error(`run ${runId} is ${run.status}, not paused`); Try / catch
const res = await handleWorkflowCommand(action, runId);
if (res.success && /continuation|resume/i.test(res.message)) {
// follow the embedded hint:
await resumeRun(runId); // or surface `/workflow resume <runId>` to the user
} Prevention
- Check run status before approving/rejecting a gate.
- Avoid editing workflow YAML while runs are paused against it.
- Coordinate gate actions among operators to prevent concurrent continuation races.
- Watch the cmd.workflow_gate_continuation_unresolved log event to diagnose root causes.
When it happens
Trigger: Calling handleWorkflowCommand for a gate action (approve/reject) on a paused run, and the continuation attempt throws — e.g. the run's state changed since the gate was evaluated, the workflow definition is missing or changed, or an internal store error occurred during resume.
Common situations: Two operators acting on the same gate simultaneously; workflow YAML edited between pause and resume so the continuation no longer matches; database connectivity problems during the continuation write.
Related errors
- Workflow run '${resolvedId}' has no working path recorded. C
- Failed to resume workflow '${run.workflow_name}': ${err.mess
- Approved but failed to resume workflow '${result.workflowNam
- Rejected but failed to resume workflow '${result.workflowNam
- Response recorded but failed to resume workflow '${result.wo
AI-assisted analysis of coleam00/Archon@0773b97458 (2026-09-01).
Data as JSON: /api/errors/3e44a81e87a05f4e.
Report an issue: GitHub.