Can happen when trying to use IndexedDB resource when not in a valid state to do so. For example, calling db.transaction() from within an upgrade callback (when current transaction is an upgrade transaction.)
Sample using Promise.catch()
doSomeDatabaseWork().then(result => {
// Success
}).catch('InvalidStateError', e => {
// Failed with InvalidStateError
console.error ("InvalidState error: " + e.message);
}).catch(Error, e => {
// Any other error derived from standard Error
console.error ("Error: " + e.message);
}).catch(e => {
// Other error such as a string was thrown
console.error (e);
});