coleam00/Archon · error
workflow.parent_resume_no_working_path
workflow.parent_resume_no_working_path
Error message
the parent has no recorded working path
What it means
When a child workflow run is stuck and the engine tries to resume or unwind it through its parent, the parent run record has no `working_path` recorded, so the parent's working directory cannot be re-established. The engine notifies the operator that the run is stuck and stops rather than guessing a directory.
Source
Thrown at packages/workflows/src/executor.ts:1650
if (!isRunBlockedOnChild(parent, childRun.id)) {
// Paused but not blocked on this child. Distinguish a MALFORMED child_workflow
// gate (missing childRunId — an invariant violation that would wedge the parent
// forever; make it loud) from a normal different-child / non-child gate (silent).
const approval = isApprovalContext(parent.metadata?.approval)
? parent.metadata.approval
: undefined;
if (approval?.type === 'child_workflow' && !approval.childRunId) {
getLog().error(
{ parentRunId, childRunId: childRun.id },
'workflow.parent_resume_malformed_gate_missing_child_run_id'
);
}
return;
}
const parentCwd = parent.working_path;
if (!parentCwd) {
getLog().warn(
{ parentRunId, childRunId: childRun.id },
'workflow.parent_resume_no_working_path'
);
await notifyStuck('the parent has no recorded working path');
return;
}
let parentWorkflow: WorkflowDefinition | undefined;
try {
// Reload the parent's graph from the source IT started with. Rediscovering from
// `parentCwd` is how a mid-run authoring edit used to change an already-running
// parent's DAG, so stored node output could be reinterpreted by a different node.
//
// Through the shared entry point like every other continuation surface. This spot
// hand-rolled the same sequence and read the capture twice for it, which is how the
// fifth surface quietly ends up behaving differently from the other four. Throws when
// the recorded capture no longer verifies; the catch below leaves the parent resumable
// rather than silently running other source.View on GitHub (pinned to 0773b97458)
Solutions
- Cancel/restart the parent run so a fresh record with a working_path is written
- Backfill `working_path` on the parent run row from the Archon workspace (scratch DB first per project rules)
- Verify the parent run record was created by a current binary, not imported
Defensive patterns
Strategy: validation
Validate before calling
// Before resuming a child, confirm the parent record is complete
const parent = await runs.get(parentRunId);
if (!parent?.working_path) throw new Error(`parent run ${parentRunId} has no working_path; restart it`); Type guard
function hasWorkingPath(parent: { working_path?: string | null }): parent is { working_path: string } {
return typeof parent.working_path === 'string' && parent.working_path.length > 0;
} Try / catch
try {
await resumeChild(childRunId);
} catch (err) {
if (err.message.includes('no recorded working path')) {
console.warn('parent run lacks working_path; cancel and restart the parent run');
} else throw err;
} Prevention
- Avoid importing or hand-editing run rows; create runs through the engine
- Upgrade through supported paths so run rows always carry working_path
- Restart stale parents instead of resuming children of incomplete records
When it happens
Trigger: Child run reaches a stuck/recovery path; executor fetches the parent run and `parent.working_path` is null/empty (e.g. run row predates the field, or the parent was created by an older binary or corrupted record).
Common situations: Upgrading an old database whose run rows lack working_path; manually edited or imported run records; parent run created before workspace assignment completed.
Related errors
- workflow.parent_resume_nothing_to_resume
- Cannot resume workflow '${workflowName}': failed to load pri
- Cannot resume: the prior run for '${workflowName}' has no co
- Workflow run '${resolvedId}' has no working path recorded. C
- Failed to resume workflow '${run.workflow_name}': ${err.mess
AI-assisted analysis of coleam00/Archon@0773b97458 (2026-09-01).
Data as JSON: /api/errors/11001127bde01b90.
Report an issue: GitHub.