sys.excepthook ever sees them. That’s exactly the failure mode slomo’s auto-tracing solves: the exception is recorded the moment it escapes your handler function, before the framework swallows it — with arguments, locals, and the SQL/HTTP calls that led up to it.
The integration for every framework is the same line:
FastAPI
enable() at import time of your app module (before the routes run). With multiple workers (uvicorn/gunicorn), each worker process records its own session — forked children are labeled forked_from in their metadata.
A 500 in the checkout route lands in slomo issues like any crash: fingerprinted, classified, with the route function’s args (sku), its locals, and any database or HTTP activity from the request.
Flask
examples/flask_app.py.
Per-request context
Two useful patterns for request-scoped visibility:slomo timeline read like an access log interleaved with your traces, and slomo search path=/checkout finds every request to a route.
Diagnosing a production-shaped 500
Live-tailing during development
Run your dev server in one terminal and follow the recording in another:print debugging that you can search afterwards.