The sync engine was adding per-photo backoff delays (2-60s) inside the processing loop, during which the user would navigate to another page (browser -> queue -> browser), killing the sync mid-wait. The upload POST never fired because the delay ran out the clock. Changes: - Remove per-photo backoff delay from processQueue loop — uploads start immediately on page load without blocking - Move retry scheduling to after the full queue pass: if any uploads failed, schedule a new triggerSync() after 15s instead of blocking inline - Keep the duplicate check on retries (fast, catches interrupted uploads that actually succeeded server-side) - uploadPhoto now returns true/false so processQueue can track failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9.9 KiB
9.9 KiB