IdexedDB: A request was aborted, for example through a call to IDBTransaction.abort

Some users of my add-on are reporting this error:
A request was aborted, for example through a call to IDBTransaction.abort.

I’m unable to find a cause nor reproduce it.
Also there is not even a word “abort” in my source code so my add-on is not aborting any transactions.

What can cause this?

The database being closed (i.e. shutdown/unload of a page).

So if my add-on is using database only through background script and there is no abort or close (it’s just opening and fetching data), does this mean that my add-on is being reloaded during the opening of the database?

Maybe the add-on is being upgraded right in the moment of fetching data from database?

Your extension encountering an error (threw) during an open transaction is another option, iirc.

Well the code there quite simple, there is not really a room for exception (especially if it works for everybody else):

DBOpenRequest.onupgradeneeded = e => {
  console.log('DB: onupgradeneeded');
  const db = e.target.result;
  db.onerror = Errors.createDatabaseErrorHandler(chrome.i18n.getMessage('err_db_creation'), reject);
  if(!db.objectStoreNames.contains(DB_IMAGE))
    db.createObjectStore(DB_IMAGE, { keyPath: ['url', 'group'] });
  if(!db.objectStoreNames.contains(DB_HISTORY))
    db.createObjectStore(DB_HISTORY, { keyPath: 'id', autoIncrement: true });
  if(!db.objectStoreNames.contains(DB_ORIGINAL))
    db.createObjectStore(DB_ORIGINAL, { keyPath: ['url', 'group'] });
};

Anyway, it’s was reported by only like 0.04% users and all of them are Firefox users so I guess it’s related with some crazy old half broken Firefox profile and we are just wasting time here :frowning: