Lincoln Baxter, III
Lincoln Baxter, III
This is reproducible for me, though not consistently. It happens often enough that we have several thousand error reports in Sentry per day, for just this issue. Example: 
``` InvalidStateError: Failed to read the 'error' property from 'IDBRequest': The request has not finished. (anonymous function) — localforage.js:1056 wrapFn — zone-evergreen.js:1218 onInvokeTask — core.js:27175 runTask — zone-evergreen.js:167 invokeTask —...
@tofumatt Hey, so I've seen this issue a number of times, and seen a number of bug reports with no resolution other than "it went away" --- it does *sometimes*,...
And this is the value being saved, which looks fine: ``` { expires: 4185074336286 groupKey: "none" type: "string" value: "{\"filters\":{\"cards\":{\"_id\":\"5eb82ea274c6b209fc5ba35c\",\"exactMatch\":false,\"searchInCollection\":false,\"showFullCard\":true,\"colors\":[],\"colorsMana\":[],\"colorsIdentity\":[],\"cmc\":{\"lower\":0,\"upper\":16},\"legalities\":[],\"setcodes\":[],\"rarities\":[],\"power\":{\"lower\":0,\"upper\":16},\"toughness\":{\"lower\":0,\"upper\":16},\"subtypes\":[],\"supertypes\":[],\"text\":[],\"types\":[],\"loyalty\":{\"lower\":0,\"upper\":11},\"promo\":null,\"reprint\":null,\"reserved\":null,\"artists\":[],\"layouts\":[]},\"collections\":{\"priceRange\":{\"lower\":0,\"upper\":100},\"_id\":\"5eb82ea274c6b209fc5ba35d\",\"pricePoint\":\"mid\",\"priceRangeEnabled\":false,\"sortBy\":\"alphabeticalName\"},\"content\":{\"resultEventFormats\":[],\"resultEventSizes\":[],\"_id\":\"5eb82ea274c6b209fc5ba35e\",\"articlesUseSystemBrowser\":false},\"decks\":{\"_id\":\"5eb82ea274c6b209fc5ba35f\",\"displayFeaturedDeck\":true,\"missingCards\":true,\"showManaCosts\":true,\"tags\":[{\"count\":1,\"name\":\"aaaaa\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":0,\"name\":\"archived\",\"enabled\":false,\"color\":\"#333333\",\"bgcolor\":\"#F2F2F2\"},{\"count\":1,\"name\":\"asdf\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":1,\"name\":\"baxter\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":23,\"name\":\"baxter bug\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":5,\"name\":\"brewing\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":3,\"name\":\"commander\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":3,\"name\":\"complete\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":1,\"name\":\"custom\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":1,\"name\":\"jame\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":42,\"name\":\"legacy\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":3,\"name\":\"modern\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":35,\"name\":\"not tagged\",\"enabled\":true,\"color\":\"#333333\",\"bgcolor\":\"#F2F2F2\"},{\"count\":1,\"name\":\"oathbreaker\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":1,\"name\":\"pioneer\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":1,\"name\":\"placed\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":5,\"name\":\"standard\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":8,\"name\":\"tournament\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"},{\"count\":2,\"name\":\"vintage\",\"enabled\":true,\"color\":\"#F2F2F2\",\"bgcolor\":\"#333333\"}]},\"events\":{\"priceRange\":{\"lower\":0,\"upper\":100},\"eventTypes\":[],\"formats\":[],\"prizeTypes\":[],\"_id\":\"5eb82ea274c6b209fc5ba360\",\"distance\":25,\"distanceEnabled\":true,\"startDate\":\"2020-06-20T04:00:00.001Z\",\"endDate\":null,\"limit\":50,\"openOnly\":false,\"priceRangeEnabled\":false,\"searchLocation\":{\"_id\":\"5eb82ea274c6b209fc5ba361\",\"latitude\":0,\"longitude\":0,\"timestamp\":\"1970-01-01T00:00:00.000Z\",\"address\":null}},\"prices\":{\"pricePoint\":\"mid\",\"moverPeriod\":\"daily\",\"moverType\":\"difference\",\"moverFormat\":\"standard\",\"_id\":\"5eb82ea274c6b209fc5ba362\"},\"general\":{\"_id\":\"5eb82ea274c6b209fc5ba363\",\"animateSliders\":false,\"defaultCurrencyCode\":{\"code\":\"USD\",\"name\":\"United States Dollar\",\"display\":\"USD - $ - United States Dollar\"},\"defaultLandingPage\":\"ArticlesPage\"}},\"notifications\":{\"settings\":{\"tournamentPairings\":[\"Mobile\"],\"tournamentDay\":[\"Mobile\",\"Email\"],\"eventsFound\":[\"Mobile\",\"Email\"],\"eventReminders\":[\"Mobile\",\"Email\"],\"topdeckedUpdates\":[\"Mobile\",\"Email\"],\"collectionPriceAlerts\":[\"Mobile\",\"Email\"],\"collectionWeeklyUpdate\":[\"Mobile\",\"Email\"],\"storeCustomerAlerts\":[\"Mobile\",\"Email\"],\"storeGeneralAlerts\":[\"Mobile\",\"Email\"],\"storeEngagement\":[\"Mobile\",\"Email\"],\"commentAlerts\":[\"Mobile\",\"Email\"],\"socialAlerts\":[\"Mobile\",\"Email\"]}},\"location\":{\"displayUnit\":\"mi\",\"lastKnown\":{\"_id\":\"5ee37da554f20b2191e989b7\",\"latitude\":37.4462383,\"longitude\":-82.1812318,\"timestamp\":\"2020-06-12T13:04:50.552Z\",\"address\":null},\"selfReported\":{\"_id\":\"5eb82ea274c6b209fc5ba365\",\"latitude\":0,\"longitude\":0,\"timestamp\":\"1970-01-01T00:00:00.000Z\",\"address\":null}},\"offlineData\":{\"cardDB\":true,\"wifiOnly\":false},\"terms\":{\"pairingsAgreed\":false,\"ratedApp\":null},\"_id\":\"5eb82ea274c6b209fc5ba35b\",\"updated\":\"2020-06-20T17:59:04.033Z\"}"...
This seemed interesting: `promise: TypeError: InjectedScriptHost.isPromiseRejectedWithNativeGetterTypeError first argument must be a rejected Promise. ` closure variables (setItem) ``` callback: undefined key: "topdecked_user.preferences" promise: TypeError: InjectedScriptHost.isPromiseRejectedWithNativeGetterTypeError first argument must be a...
Same error occurs when I reduce the object complexity: 
Seems the value is completely irrelevant. Once the database is in this state, nothing can be saved. Out of curiosity, @akosbalogh @zywyz , are either of you using Ionic Storage?...
I determined it has nothing to do with Ionic Storage :( This *seems* like a Safari bug, but I have no idea to be honest.
I suppose it's also possible that localForage could be improperly waiting for the IDB request, but... that seems less likely.
@danbunkr Unfortunately not. Sorry :(