Python, dash, ag grid update broke app

I just updated python to 3.12 and the latest dash and ag grid. I now have one page of my app that does not load. I have a loading around the page load. I see the loading then I see some dash errors flash by and then my app goes back to the previous screen that was showing. It is like dash crashes and reloads itself. I am running with debug turned on and I am running the app in pdb. No errors show up in pdb. How do I get access to the errors that flash by before dash reloads itself? The app worked fine before I updated. The app and the page that is not working are way too big to post.

If I continue stepping in pdb after my code returns, I get into this dash code:

    def debug_application(
        self, environ: WSGIEnvironment, start_response: StartResponse
    ) -> t.Iterator[bytes]:
        """Run the application and conserve the traceback frames."""
        contexts: list[t.ContextManager[t.Any]] = []

        if self.evalex:
            environ["werkzeug.debug.preserve_context"] = contexts.append

        app_iter = None
        try:
            app_iter = self.app(environ, start_response)
            yield from app_iter
            if hasattr(app_iter, "close"):
                app_iter.close()
        except Exception as e:
     

When I get to the app_iter.close() line then I see the errors in the dash debug console.

Loading chunk 336 failed.

(This error originated from the built-in JavaScript code that runs Dash apps. Click to see the full stack trace or open your browser's console.)

o.f.j@http://localhost:8850/_dash-component-suites/dash_ag_grid/dash_ag_grid.v31_2_0m1720451510.min.js:1:8740

o.e/<@http://localhost:8850/_dash-component-suites/dash_ag_grid/dash_ag_grid.v31_2_0m1720451510.min.js:1:6262

o.e@http://localhost:8850/_dash-component-suites/dash_ag_grid/dash_ag_grid.v31_2_0m1720451510.min.js:1:6241

agGrid@http://localhost:8850/_dash-component-suites/dash_ag_grid/dash_ag_grid.v31_2_0m1720451510.min.js:1:150

initializeLazyComponentType@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:1450:22

readLazyComponentType@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:11997:32

mountLazyComponent@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:17467:42

beginWork@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:18737:18

beginWork$1@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:23314:16

performUnitOfWork@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:22292:14

workLoopSync@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:22265:24

performSyncWorkOnRoot@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:21891:11

flushSyncCallbackQueueImpl/<@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:11224:26

unstable_runWithPriority@http://localhost:8850/_dash-component-suites/dash/deps/react@16.v2_17_1m1720451196.14.0.js:2685:14

runWithPriority$1@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:11174:12

flushSyncCallbackQueueImpl@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:11219:26

flushSyncCallbackQueue@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:11207:5

batchedUpdates$1@http://localhost:8850/_dash-component-suites/dash/deps/react-dom@16.v2_17_1m1720451196.14.0.js:21997:9

notify@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:12582:12

notifyNestedSubs@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:12642:15

handleChangeWrapper@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:12646:20

dispatch@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:44149:7

./node_modules/redux-thunk/es/index.js/createThunkMiddleware/middleware/</<@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:43819:16

applyProps@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:2032:15

./src/observers/executedCallbacks.ts/observer/</<@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:2065:40

./src/observers/executedCallbacks.ts/observer/<@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:2055:30

observer@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:2041:14

./src/StoreObserver.ts/StoreObserver/</<@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:357:9

./src/StoreObserver.ts/StoreObserver/<@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:355:15

dispatch@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:44149:7

./node_modules/redux-thunk/es/index.js/createThunkMiddleware/middleware/</<@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:43819:16

_callee$@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:2286:23

tryCatch@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:2222:1062

./src/observers/executingCallbacks.ts/_regeneratorRuntime/makeInvokeMethod/<@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:2222:3014

./src/observers/executingCallbacks.ts/_regeneratorRuntime/defineIteratorMethods/</<@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:2222:1699

asyncGeneratorStep@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:2228:103

_next@http://localhost:8850/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_1m1720451196.dev.js:2229:212

The Loading chunk 336 failed repeats several times then there are errors:
plotly.js did not load after 30 seconds several times then several Callback failed: the server did not respond.

I do not know if that first error is because I am stepping through in pdb or if it is a real error. The error does not mean anything to me.

I don’t know what’s going on but I’ll suggest try running it with debug=False.
There’s at least a decent chance then you will see all the relevant error messages in the Python debug console

A bit difficult to say anything else without seeing the code of the page that’s not loading

1 Like

Before the updates, this is what worked and still works:

python 3.11.8
dash 2.15.0
dash-ag-grid 31.0.1

I will try to narrow down which upgrade causes the failure.

This is what does not work:
python 3.12.4
dash 2.17.1
dash-ag-grid 31.2.0

Ran into the same error and for me it was a non standard dtype in my dataframe (decimal.Decimal).
See if there are any unexpected dtypes in your dataframe and if resolving that helps with the chunk 336 error

1 Like