- Autosave requests every frontend object separately in [FrontendObjectSync.wl (line 157)]. One missing or rejected response leaves the parent promise unresolved. Several rejection handlers only print an error and never reject/resolve that promise ([line 239 (line 239)].
- WebUIFetch has no timeout or socket-close handling ([WebUI.wlx (line 226)].
The save spinner and Electron close protection are removed only after Notebook:Saving:Finished, that event is never reached when synchronization stalls.
Another low-level issue:
- The native socket layer has a global fixed 1024-entry write FIFO with no bounds check ([usockets.c (line 603)], [push implementation (line 645)]
The save spinner and Electron close protection are removed only after Notebook:Saving:Finished, that event is never reached when synchronization stalls.
Another low-level issue: