Skip to content

ResumeRefusal

ResumeRefusal = { kind: "history-off"; } | { kind: "store-unavailable"; } | { kind: "unknown"; ref: ConversationRef; } | { command?: string; id: number; kind: "not-resumable"; origin?: string; reason: "fan-out" | "unsupported-command" | "no-thread" | "no-checkpoint" | "pending-tool-call" | "unreadable"; } | { current: string; id: number; kind: "workspace-mismatch"; stored: string; } | { id: number; kind: "same-conversation"; }

Defined in: packages/agent/src/modules/sessionResume.ts:80

Why a resume was refused — one variant per check, each with what its sentence needs.

{ kind: "history-off"; }


{ kind: "store-unavailable"; }


{ kind: "unknown"; ref: ConversationRef; }

kind: "unknown"

ref: ConversationRef

What the person typed, parsed — an integer or a run id. Kept as the reference rather than an integer because a run id that names nothing has no integer to report.


{ command?: string; id: number; kind: "not-resumable"; origin?: string; reason: "fan-out" | "unsupported-command" | "no-thread" | "no-checkpoint" | "pending-tool-call" | "unreadable"; }

optional command?: string

id: number

kind: "not-resumable"

optional origin?: string

The fan-out surface, for fan-out.

reason: "fan-out" | "unsupported-command" | "no-thread" | "no-checkpoint" | "pending-tool-call" | "unreadable"

The reason class, where it is known:

  • fan-out — one cell of a batch, eval, gth-batch or workflow run (the row has an origin). GS2-106: whether a single cell can be resumed is not decided (GS2-118);
  • unsupported-command — recorded by a command the resume matrix has no row for (review, pr, …);
  • no-thread — a conversation whose thread link is null: a checkpoint write failed while it ran and it was marked unresumable, or it predates conversation state;
  • no-checkpoint — the thread is on record but nothing was ever checkpointed under it;
  • pending-tool-call — GS2-106: the stored thread ends on a tool call that was never answered, as a run that stopped at an approval stop leaves it;
  • unreadable — the checkpoint could not be read from the store.

{ current: string; id: number; kind: "workspace-mismatch"; stored: string; }


{ id: number; kind: "same-conversation"; }

The id resolved to the conversation the session is already in — only for a run id; see below.