Replies: 1 comment
|
补充一个相关的 Responses/Codex Gateway 失败: 我同意应修复漏分的 更稳的 seam 是保留可选 |
0 replies
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.
Uh oh!
There was an error while loading. Please reload this page.
WebSocket erroris classified asPI_AI_ERROR, bypassing retriesSummary
A transient OpenAI Codex transport failure with the exact pi-ai message
WebSocket erroris classified byllm-pi-aiasPI_AI_ERRORinstead ofTRANSPORT. Since the default DSH retry policy retriesTRANSPORTbut notPI_AI_ERROR, the agent turn ends immediately without emittingllm/retry.This is distinct from the already-covered message
WebSocket closed unexpectedly.Observed behavior
Environment:
0.1.0-rc.6openai-codex@deepseek-ai/dsh-llm-pi-aiPersisted session events:
{"type":"assistant/chunk","chunk":{"type":"finish","reason":{"kind":"error","failure":{"message":"WebSocket error","code":"PI_AI_ERROR"}}}} {"type":"turn/end","reason":{"kind":"error","error":{"message":"WebSocket error","code":"PI_AI_ERROR"}}}The session contained zero
llm/retry/llm/retry-startedevents.Root cause
packages/llm/llm-pi-ai/src/stream.tsrecognizes this WebSocket wording:but not the shorter wording emitted by pi-ai:
The latter falls through to
PI_AI_ERROR. The default provider retry policy includesTRANSPORT, so classification prevents the existing outer retry mechanism from running.The Codex OAuth plugin is not the transport owner: it only supplies/refreshes credentials. pi-ai's
openai-codex-responsesprovider owns the WebSocket connection.Expected behavior
WebSocket errorshould map toTRANSPORT, allowing the bounded outer DSH retry policy to restart the failed step.Minimal fix
Add
WebSocket errorto the existing table-driven transport-wording test inpackages/llm/llm-pi-ai/tests/convert.spec.ts.Validation
Applied to upstream
masterat47f943859bef60e4160492346772ded9b24f765a:A portable
git format-patchis retained asupstream-fix.patchin this directory.All reactions