Skip to content

v3.0.12

Choose a tag to compare

@github-actions github-actions released this 24 Mar 03:34
· 148 commits to main since this release

What's Fixed (Critical — API Hang)

🔥 App Gets Stuck Calling API (ROOT CAUSE FOUND)

The BOT API returns 429 Too Many Requests on nearly every request when fetching large date ranges (fresh installs with no cache).

Old behavior: 429 consumed tenacity retry attempts → exhausted after 5 retries → app crashed on chunk 2 of 15. No progress shown to user.

New behavior: 429 handled internally with escalating waits (5s→6s→7s→8s...) that do NOT consume retry attempts. Every chunk eventually succeeds.

✅ Changes

Component Fix
_fetch_json Internal 429 loop (up to 10 waits) with escalating delay
tenacity Only retries real errors (timeout, connection failure)
httpx.AsyncClient Added Timeout(30s, connect=10s) to prevent infinite hangs
get_exchange_rates Per-chunk logging (chunk X/Y: date → date)
Inter-chunk jitter Increased to 1-3s cooldown

🧪 Verified

  • 608 records fetched (304 USD + 304 EUR) in ~213s
  • Frequent 429s handled gracefully — zero crashes
  • Previous version crashed on chunk 2 of 15

📝 ExRate Start Date

compute_year_start_date correctly starts from Dec 30 (not Dec 31). Dec 31 appears in the ExRate sheet as a calendar row marked as holiday with no rate data — this is expected behavior.

Full Changelog: v3.0.11...v3.0.12