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

typescript
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,

typescript
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