You must provide a root Epic to createEpicMiddleware
Author: temurihCreated Jul 3, 2018Updated Jul 25, 2026
Bug Report
Current Behavior
I am encountering this ts error when I am trying to use createEpicMiddleware.
Error: Property 'run' does not exist on type 'EpicMiddleware<Action<any>, {}, any, Action<any>>'
OR
Error: You must provide a root Epic to createEpicMiddleware
Reproduction
const epicMiddleware = createEpicMiddleware({
dependencies: { ... }
});
let middleware: Middleware[] = [];
middleware.push(epicMiddleware);
...
export const configureStore = (initialState: object): Store<IStore> => {
const store = createStore(
rootReducer,
initialState,
applyMiddleware(...middleware)
);
epicMiddleware.run(rootEpic);
return store;
};This is the error I am getting,
Property 'run' does not exist on type 'EpicMiddleware<Action<any>, {}, any, Action<any>>'.
When I change the type of epicMiddleware to any, then it throws a runtime error, You must provide a root Epic to createEpicMiddleware
P.S. I am using the latest version of redux-observable (1.0.0)
When using older version of redux-observable (such as 0.18.0), this works fine,
const epicMiddleware = createEpicMiddleware(rootEpic, {
dependencies: { ... }
});
let middleware: Middleware[] = [];
middleware.push(epicMiddleware);
...
export const configureStore = (initialState: object): Store<IStore> =>
createStore(
rootReducer,
initialState,
applyMiddleware(...middleware)
);Source: redux-observable/redux-observable