From ce5a0442fca317c45674318e8db1b3fabfc2b70d Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 15 Jun 2023 12:27:09 +0100 Subject: [PATCH] Close IDB database before deleting it to prevent spurious unexpected close errors --- src/store/indexeddb-local-backend.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/store/indexeddb-local-backend.ts b/src/store/indexeddb-local-backend.ts index 3bc5914066a..96cd1f87d04 100644 --- a/src/store/indexeddb-local-backend.ts +++ b/src/store/indexeddb-local-backend.ts @@ -338,12 +338,16 @@ export class LocalIndexedDBStoreBackend implements IIndexedDBBackend { /** * Clear the entire database. This should be used when logging out of a client - * to prevent mixing data between accounts. + * to prevent mixing data between accounts. Closes the database. * @returns Resolved when the database is cleared. */ public clearDatabase(): Promise { return new Promise((resolve) => { logger.log(`Removing indexeddb instance: ${this.dbName}`); + + // Close the database first to avoid firing unexpected close events + this.db?.close(); + const req = this.indexedDB.deleteDatabase(this.dbName); req.onblocked = (): void => {