Respect provider rate limits and preserve bank connections on throttling
This commit is contained in:
@@ -150,6 +150,36 @@ failed enrichment stays unclassified with an error visible in Transactions.
|
||||
Classification requests use one transaction at a time, not batches. Known
|
||||
merchant defaults can classify without any configured AI key.
|
||||
|
||||
Provider rate limits
|
||||
--------------------
|
||||
Classification and Enable Banking use separate in-memory request gates. AI
|
||||
imports and previews, including previews choosing another model, share the AI
|
||||
gate. HTTP 429 retries retain the original request and privacy/authentication
|
||||
controls. Other HTTP failures are not automatically retried.
|
||||
|
||||
Each operation makes at most four attempts. Without a usable Retry-After hint,
|
||||
retry delays are 1, 2 and 4 seconds; an exhausted fourth attempt retains an
|
||||
8-second cooldown. Retry-After delta-seconds and HTTP dates can extend these
|
||||
delays, never shorten them. Automatic waiting totals at most two minutes,
|
||||
separate from each network attempt's timeout (bank: at most 30 seconds; AI:
|
||||
45 seconds by default). Waiting and queued requests honor context cancellation.
|
||||
|
||||
Long hints, exhausted attempts, and canceled retries retain the provider's
|
||||
cooldown. New calls fail without contacting that provider before its retry
|
||||
time. Local merchant rules still work. Unrepresentably large positive hints
|
||||
disable automatic retries rather than overflow into an early request.
|
||||
These gates live in the running client, not the persisted financial journal.
|
||||
Retries cannot lift provider quotas; wait until the reported time. Existing
|
||||
failed classifications require another Analyse preview and explicit Apply.
|
||||
|
||||
Bank GET requests may retry 429. Authorization and once-only session exchange
|
||||
POST requests never replay automatically, but still establish a cooldown.
|
||||
Session status checks use the authorized UID list and expiry, without repeated
|
||||
account-details requests; full account metadata remains saved from Exchange.
|
||||
An unavailable session reports its original safe rate error once, without
|
||||
additional unavailable-account errors or a false reconnection requirement.
|
||||
Failed-account cursors and the last successful complete sync remain unchanged.
|
||||
|
||||
Enable Banking
|
||||
--------------
|
||||
Register your application and public certificate with Enable Banking. For
|
||||
|
||||
Reference in New Issue
Block a user