In one of my deployments, I am initially offline; specifically, I need to ssh -L3000:localhost:3000 into my server, and then silverbullet is at localhost:3000. Everything works fine online, or for brief offline moments. However, when waking this laptop in the morning, the connection is initially down. Silverbullet does not like that:
[Service Worker] [sync] Performing a single file sync index.md
service_worker.js:2 [Service Worker] Got error fetching, throwing offline /.fs/index.md Failed to fetch
(anonymous) @ service_worker.js:2
authenticatedFetch @ service_worker.js:2
await in authenticatedFetch
getFileMeta @ service_worker.js:2
syncSingleFile @ service_worker.js:2
await in syncSingleFile
syncSingleFile @ service_worker.js:2
observedRequest @ service_worker.js:2
emit @ service_worker.js:2
(anonymous) @ service_worker.js:2
setTimeout
handleGet @ service_worker.js:2
await in handleGet
handleRequest @ service_worker.js:2
(anonymous) @ service_worker.js:2
await in (anonymous)
onFetch @ service_worker.js:2
(anonymous) @ service_worker.js:2Understand this error
service_worker.js:2 [Service Worker] error Error syncing file index.md Offline
service_worker.js:2 [Service Worker] Got error fetching, throwing offline /.ping Failed to fetch
(anonymous) @ service_worker.js:2
authenticatedFetch @ service_worker.js:2
await in authenticatedFetch
ping @ service_worker.js:2
checkOnline @ service_worker.js:2
(anonymous) @ service_worker.js:2Understand this error
service_worker.js:2 [Service Worker] [sync] Performing a single file sync index.md
service_worker.js:2 [Service Worker] Got error fetching, throwing offline /.fs/index.md Failed to fetch
(anonymous) @ service_worker.js:2
authenticatedFetch @ service_worker.js:2
await in authenticatedFetch
getFileMeta @ service_worker.js:2
syncSingleFile @ service_worker.js:2
await in syncSingleFile
syncSingleFile @ service_worker.js:2
observedRequest @ service_worker.js:2
emit @ service_worker.js:2
(anonymous) @ service_worker.js:2
setTimeout
handleGet @ service_worker.js:2
await in handleGet
handleRequest @ service_worker.js:2
(anonymous) @ service_worker.js:2
await in (anonymous)
onFetch @ service_worker.js:2
(anonymous) @ service_worker.js:2Understand this error
service_worker.js:2 [Service Worker] error Error syncing file index.md Offline
Visually, I get an empty page, and it persists until a browser-led reload (F5). My index page is a “projects list”, so it’s a bit of unpleasant friction. Yes yes I could technically host my own synchronized instance of silverbullet on said laptop, but this is meant to be a “local first, offline supported” web app now.
I can rummage in the code a little bit, but would appreciate some pointers as to how this is all meant to work. Thanks!