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

      try db.deleteObjectStore(name)
    return

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

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

      store = txn.objectStore(doc.slug)
