mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-10 21:32:18 +00:00
The inbound route admits two uploads per person (four per process) and answers the next with 429 `uploadBusy` and `Retry-After: 1`. The vault queue sent three at once, so a multi-file drop provoked that answer itself, and the card read it as the hourly limit: "Try again in a few minutes". The queue now runs at `DOCUMENT_UPLOAD_PER_USER_CONCURRENCY`, moved to `inbound-constants.ts` so client and route share one number. A busy answer is classified on its own, carries its Retry-After, and is retried for the same file (Retry-After clamped to 1-10 s plus jitter, at most six attempts within 30 s) while the row stays in its uploading state. Only a spent budget shows an error, with copy that says the server was busy. Unmounting aborts any pending wait. The Coach's new-file attach uses the same retry. The hourly-limit copy now names the hour.