diff --git a/apps/server/src/provider/Layers/CodexSessionRuntime.test.ts b/apps/server/src/provider/Layers/CodexSessionRuntime.test.ts index ec32b1dae718858e8b897734a81576cb683bc695..2a2de683920970a6b35ef3e72faef16125e8be22 100644 --- a/apps/server/src/provider/Layers/CodexSessionRuntime.test.ts +++ b/apps/server/src/provider/Layers/CodexSessionRuntime.test.ts @@ -498,6 +498,18 @@ describe("isRecoverableThreadResumeError", () => { ); }); + it("matches a missing rollout for a known thread id", () => { + NodeAssert.equal( + isRecoverableThreadResumeError( + new CodexErrors.CodexAppServerRequestError({ + code: -32603, + errorMessage: "no rollout found for thread id 019fdf74-aaa9-7950-b252-7cc7a8650470", + }), + ), + true, + ); + }); + it("ignores non-recoverable resume errors", () => { NodeAssert.equal( isRecoverableThreadResumeError( diff --git a/apps/server/src/provider/Layers/CodexSessionRuntime.ts b/apps/server/src/provider/Layers/CodexSessionRuntime.ts index 4af2624159979b0eba80ff3787ad66f09c12fc0f..8f887c1b5929b12bbe29da66018829908254c9c2 100644 --- a/apps/server/src/provider/Layers/CodexSessionRuntime.ts +++ b/apps/server/src/provider/Layers/CodexSessionRuntime.ts @@ -58,6 +58,7 @@ const RECOVERABLE_THREAD_RESUME_ERROR_SNIPPETS = [ "no such thread", "unknown thread", "does not exist", + "no rollout found", ]; export function hasConfiguredMcpServer(appServerArgs: ReadonlyArray | undefined): boolean {