diff --git a/aw-datastore/src/worker.rs b/aw-datastore/src/worker.rs index 18eaf665..b116a1f3 100644 --- a/aw-datastore/src/worker.rs +++ b/aw-datastore/src/worker.rs @@ -142,7 +142,11 @@ impl DatastoreWorker { } match transaction.commit() { Ok(_) => (), - Err(err) => panic!("Failed to commit datastore transaction! {err}"), + Err(err) => { + error!("Failed to commit legacy import transaction: {err}"); + // Continue without panicking — legacy import will be retried on + // next startup if the commit didn't persist. + } } } @@ -192,7 +196,18 @@ impl DatastoreWorker { ); match tx.commit() { Ok(_) => (), - Err(err) => panic!("Failed to commit datastore transaction! {err}"), + Err(err) => { + error!( + "Failed to commit datastore transaction ({} events lost): {err}", + self.uncommitted_events + ); + // Continue instead of panicking — the worker thread survives this + // transient failure (e.g. SQLITE_FULL on disk full). Note: clients + // already received success responses before the commit, so they won't + // know to retry. Rolled-back events create a gap in the timeline; + // watchers will resume sending heartbeats from current state, but the + // specific batch of events is permanently lost. + } } if self.quit { break;