         return
       txn.onerror = (event) ->
         event.preventDefault()
-        onError(event)
+        if txn.error.name is 'NotFoundError' and _retry
+          @migrate()
+          @unstore(doc, onSuccess, onError, false)
+        else
+          onError(event)
         return
 
       store = txn.objectStore(doc.slug)

        @cachedDocs?[doc.slug] = doc.mtime
        onSuccess()
        return
      txn.onerror = (event) ->
        event.preventDefault()
        onError(event)
        return

      store = txn.objectStore(doc.slug)

      try db.deleteObjectStore(name)
    return

  store: (doc, data, onSuccess, onError, _retry = true) ->
    @db (db) =>
      unless db
        onError()
