fix(codex): don't crash on startup when quota is exhausted (429)#744
Merged
nicoloboschi merged 1 commit intoMar 30, 2026
Merged
Conversation
A 429 usage_limit_reached response during verify_connection() caused the server to refuse to start entirely. Quota exhaustion is not a configuration error — the server should start and serve retain/recall requests normally, it just can't make LLM calls until the quota resets. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
nicoloboschi
approved these changes
Mar 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When the Codex usage limit is reached,
verify_connection()receives a 429 response and raises aRuntimeError, which causes the entire server to refuse to start:A quota limit is not a configuration error — the credentials are valid, the model is correct, there's just no budget left until the quota resets. The server should start normally and serve retain/recall requests; it just can't make LLM calls until the quota resets.
Fix
Catch 429 /
usage_limit_reachedresponses inverify_connection()and log a warning instead of raising, allowing startup to proceed.Tested
Verified locally: server starts and serves requests with quota exhausted. Retain/recall works; LLM-dependent operations (fact extraction, consolidation) fail gracefully per their own retry/error handling.
🤖 Generated with Claude Code