You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Send another message to the same thread while still limited.
Expected behavior
Every limited turn names the limit, as the first one did.
Actual behavior
Only the first limited turn gets the new sentence. Each retry ends with the old "Claude gave up after repeated API errors." above the CLI's own line "You've hit your session limit · resets 9:20pm".
The CLI sends rate_limit_event with status: "rejected" only when the limit state changes, so the first turn records it in turnState.rejectedRateLimitTypes and the result names the limit. A retry while still limited carries no new rate_limit_event; it only carries an assistant message with error: "rate_limit" (the SDK's SDKAssistantMessageError union) and then result with terminal_reason: "api_error". handleAssistantMessage in apps/server/src/provider/Layers/ClaudeAdapter.ts latches error: "authentication_failed" from that message but not error: "rate_limit", so handleResultMessage has no evidence and falls back to the generic sentence.
Three turns in a row on the same thread, 19:25 correct, 19:26 and 19:26 generic:
Before submitting
Area
apps/server
Steps to reproduce
Expected behavior
Every limited turn names the limit, as the first one did.
Actual behavior
Only the first limited turn gets the new sentence. Each retry ends with the old "Claude gave up after repeated API errors." above the CLI's own line "You've hit your session limit · resets 9:20pm".
The CLI sends
rate_limit_eventwithstatus: "rejected"only when the limit state changes, so the first turn records it inturnState.rejectedRateLimitTypesand the result names the limit. A retry while still limited carries no newrate_limit_event; it only carries anassistantmessage witherror: "rate_limit"(the SDK'sSDKAssistantMessageErrorunion) and thenresultwithterminal_reason: "api_error".handleAssistantMessageinapps/server/src/provider/Layers/ClaudeAdapter.tslatcheserror: "authentication_failed"from that message but noterror: "rate_limit", sohandleResultMessagehas no evidence and falls back to the generic sentence.Three turns in a row on the same thread, 19:25 correct, 19:26 and 19:26 generic:
Impact
Minor bug or occasional failure
Version or commit
main @ 1d1bf50
Environment
macOS 15, desktop app; Claude Code CLI 2.1.263, Claude subscription (OAuth); server on Linux
Logs or stack traces
Screenshots, recordings, or supporting files
No response
Workaround
None; the first turn's message is still visible above.