Repository navigation
[Feature]: Preserve pending native user questions across server restarts #24415
hahasagined
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Summary
A pending native Codex
request_user_inputquestion becomes permanently unanswerable after a normal server restart. Please preserve supported pending questions durably, and resume the original conversation only after the user answers.This was reproduced with a real provider conversation on stock
0.1.2-nightly.20261022.3512(Linux, headless T3 in a Coder workspace), using a single server and its existing data directory. The server was stopped and started on the same runtime and workspace template; this was not an upgrade or a shared-data-directory/two-writer setup.Reproduction
request_user_inputtool with a simple Alpha/Beta choice. Tell it to repeat the chosen answer after receiving it.responseCapability: { "type": "live" }. Leave it unanswered.Actual result
After startup, the original request was:
{ "kind": "user_input", "status": "expired", "responseCapability": { "type": "not_resumable", "reason": "The server restarted before this runtime request was resolved." } }The waiting run was cancelled.
runtime-request.respondfor the original request was rejected withRuntime request <id> is expired.No continuation run was created. All pre-existing conversation identities and message hashes were retained, as were settings and authentication/Connect state; the loss is specifically the ability to answer the pending question and continue it.Expected behavior
For providers and native conversation identities that support safe resumption:
If preserving a process-bound native callback is unsupported, a durable answer/message continuation path would meet the user need. This may be a feature request rather than a regression; the current expiration appears intentional, but it prevents safely restarting otherwise idle servers with unanswered questions.
Impact
Routine maintenance must wait for every blocking question to be answered, or it loses the original question's answer path. An agent waiting for a human may remain parked for hours or days even though no work is actively executing.
Related issues
parent_not_activeafter a provider handoff, a notification turn, or a question; a restart mid-turn kills the thread #23006 includes a different restart failure involving Claude provider sessions/orchestration ownership.Validation limits
The real-provider restart and rejection above were observed directly. Correct-conversation/exactly-once resumption could not be tested on this stock build because the request expired first. No production question was answered for its owner.
All reactions