The onerror event handler of the IDBDatabase interface handles the error event, fired when a request returns an error and bubbles up to the connection object.

Note: Consider using IDBOpenDBRequest.onsuccess instead (see IDBRequest.onsuccess, where it is inherited from).

Note: This feature is available in Web Workers


IDBDatabase.onerror = function(event) { ... }


This example shows an IDBOpenDBRequest.onupgradeneeded block that creates a new object store; it also includes onerror and onabort functions to handle non-success cases.

DBOpenRequest.onupgradeneeded = function(event) {
  var db = this.result;

  db.onerror = function(event) {
    note.innerHTML += '<li>Error opening database.</li>';

  db.onabort = function(event) {
    note.innerHTML += '<li>Database opening aborted!</li>';

  // Create an objectStore for this database

  var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });

  // define what data items the objectStore will contain

  objectStore.createIndex("hours", "hours", { unique: false });
  objectStore.createIndex("minutes", "minutes", { unique: false });
  objectStore.createIndex("day", "day", { unique: false });
  objectStore.createIndex("month", "month", { unique: false });
  objectStore.createIndex("year", "year", { unique: false });

  objectStore.createIndex("notified", "notified", { unique: false });

  note.innerHTML += '<li>Object store created.</li>';


Indexed Database API 3.0 (Indexed DB 3.0)
# dom-idbdatabase-onerror

Browser compatibility

BCD tables only load in the browser

See also