Console logs
Every Jam records the console output from the captured page, with a severity filter to show only errors, warnings, or specific log levels.
Network requests
Jam captures request and response details, including bodies, for all XHR and fetch requests on the page. Each request includes complete timing breakdowns (DNS lookup, connection time, and response duration), matching the data engineers expect from Chrome DevTools.GraphQL
GraphQL returns a 200 status code even when the response body contains errors, and it typically routes every operation through a single/graphql endpoint. That normally means combing through each request to find the failure.
Jam handles both problems automatically:
- Error detection: Jam flags GraphQL responses that contain errors in the response body, even though they return HTTP 200.
- Operation names: Jam detects and shows the GraphQL operation name directly in the request list, so you can identify specific queries and mutations without clicking into each request.
When bodies are missing
A few edge cases prevent Jam from capturing the request or response body:- Timing: the request happened before Jam was initialized on the page. This depends on when your application’s scripts load compared to Jam’s.
- CORS: the browser performed a preflighted OPTIONS check that did not pass, so the request body was never sent.
- Static assets: images, scripts, and other non-programmatic assets (anything that is not XHR, fetch, or WebSockets) are not captured.
Secrets and redaction

JAM_DOES_NOT_SAVE_SECRETS strings as the values of these headers) has already been filtered before leaving your laptop. It does not reach Jam’s servers.
In the resulting Jam, you will see JAM_DOES_NOT_SAVE_SECRETS in place of any possible secret information.
We prefer to over-filter than under-filter and are taking the route of being overly cautious, so sometimes you will see information filtered out that probably should not have been. Help us improve our filtering accuracy by sending your feedback to hello@jam.dev.
Binary payloads
When a request or response body contains binary content (Protocol Buffers, WebSocket binary frames, MessagePack, gRPC payloads, or other non-text formats), Jam displays a placeholder instead of the raw data:FAQs
Do I need to enable DevTools manually?
Do I need to enable DevTools manually?
For Jams captured with the browser extension, DevTools data is captured automatically with no setup required. Jams submitted through a Recording Link capture screen recordings only by default. To also collect console logs and network requests, connect your domain and install Jam’s scripts on your site.

