Repository navigation
[Bug] subagent_codex fails with Product subagent failure (product: Codex; stage: turn; category: product-error) and no diagnostic
#9640
Replies: 2 comments
|
Source-level confirmation of your analysis — and the layer where the detail is still present. Traced on 1. The wire layer already knows the exact failure id. So 2. The projection to the parent is deliberate and lossy. The logging side explains your silent logs: the provider's 3. 4. Where the detail can still be recovered. The provider spawns the app-server with every stream explicitly piped — Interim answer to "why is this terminal": with the projection closed, the raw app-server frame is the only surviving copy of the value, so a capture at that seam is the difference between seeing |
|
The wire frames are recoverable from a plugin. The cause analysis above still holds:
Published as a plugin:
npm install --save @argszero/dsh-codex-wire-captureIt ships its own bundle patch, so a profile that installs it by name gets the mount row without writing one. Once mounted, a failing turn frame logs It is an observer, deliberately: it does not change the parent notice, does not classify or retry, and never touches the spawn spec, the argv, the environment, the exit facts or the child's stdin. If the notice itself should carry the cause, that is a change in Probed against the three published lines ( |
Uh oh!
There was an error while loading. Please reload this page.
Summary
subagent_codexfailed twice in a row, both times with the same notice and no underlying detail:The task itself was trivial (generate one image and save it to a path). The same task run through the Codex CLI completed, so the Codex side is healthy — only the subagent path fails.
Environment
/opt/homebrew/lib/node_modules/@deepseek-ai/dsh)@deepseek-ai/dsh-subagent-codex0.2.1-alpha.2chatgptdsh webhostSteps to reproduce
From a
dsh websession, callsubagent_codexwith a short, self-contained prompt, e.g.The dispatch is accepted and the tool returns a subagent id.
The subagent then fails with the notice quoted above and no closing message.
Observed twice, roughly 3 minutes apart, with two different prompts (one long, one short) and the same result:
f2824c71-e3e3-43e2-820a-7bd6ff33053658f5826e-004f-49b5-b395-2fd37a1974e9What the Codex side looked like at that moment
codex features listreportsimage_generation stable true. So neither auth, nor the app server, nor the image feature was down.No diagnostic is emitted anywhere
~/.dsh/logs/dsh-web.err.loggained no line (newest entry predates the failure by a day).~/.dsh/logs/model-failover.jsonlrecords no hop for these turns.Source of the message (for whoever fixes it)
node_modules/@deepseek-ai/dsh-subagent-codex/lib/index.js:status !== "completed";failureInfo()mapserror.codexErrorInfoand, forbadRequest/threadRollbackFailed/other(L90-92), returnscategory: "product-error". The error thrown to the parent issubagent-codex: Codex turn ended with status failed: product-error— the Codex-side error text is never included.
turn, notturn-start, soturn/startsucceeded: the thread was created and the turn started, then failed.Workaround
Running the same prompt through the CLI works:
It completed in about a minute and wrote a valid 1254x1254 PNG (1,482,458 bytes).
Requested improvement
Surface the Codex-side failure detail — at minimum
codexErrorInfo, preferably the provider's error message — in the parent notice or in a log line, so thatproduct-erroris diagnosable instead of terminal.All reactions