Retry transient Codeforces API failures; fix README OAuth advice#1
Open
OmarMusayev wants to merge 1 commit into
Open
Retry transient Codeforces API failures; fix README OAuth advice#1OmarMusayev wants to merge 1 commit into
OmarMusayev wants to merge 1 commit into
Conversation
…vice cf_get() now retries transient failures - read timeouts, connection errors, and non-OK Codeforces responses - for 4 attempts with 3s/8s/20s backoff. Previously a single Codeforces API blip failed the whole scheduled run; one such read-timeout did exactly that today. README: the OAuth setup step said the consent screen "can stay in Testing status". That makes Google expire the refresh token after 7 days, which silently breaks send_outbox.py. It now says to publish the app. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Why
Two failure modes hit the workflow today:
cf_get()had no retry logic.Changes
fetch_data.py—cf_get()retries transient failures (read timeouts, connection errors, non-OK CF responses): 4 attempts, 3s/8s/20s backoff. Worst-case added wait ~31s, well under the 10-minute job timeout.README.md— the setup step no longer says the OAuth app can stay in "Testing"; it now says to publish the app, and notes the 7-day refresh-token expiry that "Testing" causes.Test
python -m py_compile fetch_data.py— cleanimport fetch_data— clean (RETRIES / RETRY_BACKOFF resolve)🤖 Generated with Claude Code