coleam00/Archon · error

Container isolation was requested but is not wired up: the c

Error message

Container isolation was requested but is not wired up: the container backend needs an isolation store and container config. This is a caller bug — pass `store` and `containerConfig`, or run without `--container`.

What it means

When container isolation is requested via opts.container, resolveFolderBackend requires an isolation store and container configuration to construct the ContainerBackend. If either is missing, container isolation is not wired up and the caller is buggy, so it throws with explicit instructions: pass store and containerConfig, or run without --container.

Source

Thrown at packages/isolation/src/backend-router.ts:72

export function resolveFolderBackend(
  codebase: BackendPrepareRequest['codebase'],
  opts?: ResolveFolderBackendOptions
): IIsolationBackend;
export function resolveFolderBackend(
  codebase: BackendPrepareRequest['codebase'],
  opts: ResolveFolderBackendOptions = {}
): IIsolationBackend {
  if (codebase.kind !== 'folder') {
    throw new Error(
      `resolveFolderBackend called for non-folder codebase '${codebase.name}' ` +
        `(kind: ${codebase.kind}). The backend seam is folder-only; repo projects ` +
        'use worktree isolation.'
    );
  }

  if (opts.container) {
    if (!opts.store || !opts.containerConfig) {
      throw new Error(
        'Container isolation was requested but is not wired up: the container ' +
          'backend needs an isolation store and container config. This is a caller ' +
          'bug — pass `store` and `containerConfig`, or run without `--container`.'
      );
    }
    return new ContainerBackend({
      store: opts.store,
      config: opts.containerConfig,
      ...(opts.dockerRunner ? { dockerRunner: opts.dockerRunner } : {}),
    });
  }

  return new InPlaceBackend();
}

View on GitHub (pinned to 0773b97458)

Solutions

  1. Pass the isolation store and container config: resolveFolderBackend(codebase, { container: true, store, containerConfig }).
  2. Run without --container to use the default folder backend while container support is unconfigured.
  3. Complete container isolation setup so store and containerConfig are available at the call site.
  4. Fix the CLI/dispatch layer to load container config whenever the --container flag is set.

Example fix

// before
resolveFolderBackend(codebase, { container: true });
// after
resolveFolderBackend(codebase, { container: true, store: isolationStore, containerConfig: cfg });
Defensive patterns

Strategy: validation

Validate before calling

if (opts.container && (!opts.store || !opts.containerConfig)) {
  throw new Error('container isolation requires store and containerConfig; configure it or drop --container');
}

Type guard

type ContainerOpts = { container: true; store: IsolationStore; containerConfig: ContainerConfig };
function containerWired(o: { container?: boolean; store?: IsolationStore; containerConfig?: ContainerConfig }): o is ContainerOpts {
  return o.container === true && o.store != null && o.containerConfig != null;
}

Try / catch

try {
  const backend = resolveFolderBackend(codebase, opts);
} catch (e) {
  if (e.message.includes('Container isolation was requested but is not wired up')) {
    console.error('Pass store/containerConfig or run without --container');
  } else throw e;
}

Prevention

When it happens

Trigger: Calling the backend router with { container: true } but omitting opts.store or opts.containerConfig — e.g. a CLI path that forwards --container without loading container config, or programmatic use of resolveFolderBackend that supplies only the flag.

Common situations: Running with --container before container isolation was configured (no container runtime config in the Archon setup); a new call site added after the store/config wiring was skipped; tests or scripts invoking the router directly with container: true.

Related errors


AI-assisted analysis of coleam00/Archon@0773b97458 (2026-09-01). Data as JSON: /api/errors/6b3f429ceafc8724. Report an issue: GitHub.