Skip to content

Error Handling

Redux Remember provides robust error handling for both persistence and rehydration operations. This guide shows you how to handle errors gracefully in your application.

Redux Remember exports two error types:

The errorHandler option in rememberEnhancer lets you handle errors from both persistence and rehydration:

import reducers from './reducers';
import { configureStore } from '@reduxjs/toolkit';
import { rememberReducer, rememberEnhancer, PersistError, RehydrateError } from 'redux-remember';
const rememberedKeys: (keyof typeof reducers)[] = ['user', 'settings'];
const reducer = rememberReducer(reducers);
const store = configureStore({
reducer,
enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat(
rememberEnhancer(
window.localStorage,
rememberedKeys,
{
errorHandler: (error) => {
if (error instanceof PersistError) {
console.error('Failed to save state:', error);
// Handle persistence errors
} else if (error instanceof RehydrateError) {
console.error('Failed to load state:', error);
// Handle rehydration errors
}
}
}
)
)
});

Send errors to your monitoring service:

import reducers from './reducers';
import * as Sentry from '@sentry/browser';
import { configureStore } from '@reduxjs/toolkit';
import { rememberReducer, rememberEnhancer, PersistError, RehydrateError } from 'redux-remember';
const rememberedKeys: (keyof typeof reducers)[] = ['user', 'settings'];
const reducer = rememberReducer(reducers);
const store = configureStore({
reducer,
enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat(
rememberEnhancer(
window.localStorage,
rememberedKeys,
{
errorHandler: (error) => {
// Log to Sentry or similar service
Sentry.captureException(error);
}
}
)
)
});

If you don’t provide an errorHandler, Redux Remember uses console.warn by default. This means errors won’t crash your app but will be logged to the console.