Switching pages made the target page active and dropped the current page's server copy before reading the target. When that read failed (offline, say), the switch reverted, but the page on screen no longer had a server copy to compare edits against, so every later edit stayed on the canvas and never reached the durable queue. A crash or forced close lost them; a real release build against a stopped local Convex showed exactly that. The switch now reads the target page first and changes nothing unless the read works. A failed read leaves the page on screen as it was, still queueing its edits, and says the page couldn't be opened. With the connection known down it fails at once instead of waiting out the read's 30 s timeout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dara Adedeji committed on 10/17/2026, 9:19:54 PMparentb37db17
3 files changedLine totals unavailable