Android AsyncStorage: "Error restoring state" for large datasets
See original GitHub issueThis library has been working perfectly for me with smaller size state trees, but trying to use it on bigger ones I’m running into these errors when relaunching the app:
10:39:16 redux-persist/getStoredState: Error restoring data for key: entities {}
10:39:18 Possible Unhandled Promise Rejection (id: 0):
Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
Specifically, I’m trying to store a lot of data from a server locally. To give an idea of the size, running JSON.stringify(payload).length
gives 2368916
, so it looks like it should be within the 6MB limit.
I’m not having any of the performance issues described in #185 either - the app runs fairly smoothly (perhaps because writes are used sparingly). It’s just a case of closing the app and reopening it leading to this error when it tries to rehydrate.
Issue Analytics
- State:
- Created 7 years ago
- Comments:15 (4 by maintainers)
Top Results From Across the Web
redux-persist/getStoredState: Error restoring data for key: xxxxx
Make sure the Cursor is initialized correctly before accessing data from it. I've tried things like this in MainApplication.java - onCreate ...
Read more >Advanced topics on caching in Apollo Client
To get started, pass your cache and a storage provider to persistCache . By default, the contents of your cache are immediately restored...
Read more >React Native AsyncStorage - Asap developers
Asynchronous means that each of its methods returns an object that could be a Promise or an Error. It's unencrypted, so beware of...
Read more >Using AysncStorage to Store Data in React Native - YouTube
This video demonstrates how to use the AsyncStorage package to store data offline in key-value pairs. This is a great way to store...
Read more >SecureStore - Expo Documentation
Size limit for a value is 2048 bytes. An attempt to store larger values may fail. Currently, we print a warning when the...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
@kenma9123 I’ve worked around this issue by creating my own storage for Android that uses the filesystem rather that AsyncStorage.
Hopefully that will help others with this same issue. Perhaps there would be a way to integrate the storage implementation back into redux-persist so as to provide a more robust React Native Android storage solution?
Expand to see the code
@kenma9123 I’ve created a project on npm with a cleaned up version of the above code. Check out https://www.npmjs.com/package/redux-persist-filesystem-storage