JavaScript errors
Uncaught errors with their message, file and line, and promise rejections nobody handled.
Every error, console message and failed request, recorded with the visit it happened in. See how many visitors each one reaches, then watch it happen.
Included on every plan, Free too.
In the player
An error report tells you a line failed. The recording shows what the visitor clicked, what they typed into and which request came back with a 500 just before it. Errors are marked on the timeline, and clicking any console or network row jumps the player to that moment.
Included on every plan.
Example data
All of it from the visitor's own browser, which is where most of what breaks a website happens.
Uncaught errors with their message, file and line, and promise rejections nobody handled.
Everything your code writes with console.log, info, warn, error and debug.
Each fetch and XHR call with its method, address, status, timing and size. Requests with no response are caught too.
The Errors report
One bug can throw a thousand slightly different messages. The report groups them into one row and puts the ones reaching the most visitors at the top.
Numbers, addresses and quoted values are set aside when errors are compared, so one bug is one row.
Each error shows how many visits it reached, how many times it fired, the page it happens on most and when it was last seen.
Requests that came back with an error status, grouped by address, with how many visits hit them and how long they took.
“Watch” on any error opens the recordings it appeared in.
Alerts
When a JavaScript error appears that you have not seen before, you get a message with a link to the recording. When five or more server errors pile up within fifteen minutes, you hear about that too.
7 rage clicks on “Checkout” in the last 15 minutes on yourstore.com.
Watch recording →TypeError: cart is undefined, on /products/classic-cap.
Watch recording →Example data
Bug reports
One click in the player copies a report ready to paste into GitHub, Jira or Linear: the page, the browser and device, the errors, the failed requests, the clicks that led there and a link to the replay at the right moment.
Example data
Careful by default
Request contents can hold passwords and tokens, so they are off until you decide otherwise.
Request and response bodies are recorded only when you turn that on for a site.
Values under names such as password, token, card or CVV are replaced in the browser before anything is sent.
Prefer not to keep console output? Switch it off in the site's settings.
Errors are deleted with their recordings when your plan's storage period ends.
Something else? Ask us and a person will answer.
JavaScript errors with their message, file and line; unhandled promise rejections; console messages at every level; and every fetch and XHR request with its method, address, status, timing and size. Request and response contents are recorded only if you turn that on for the site.
Not entirely, and we would rather say so. GetSiteTape logs what happened in the visitor's browser and shows it with the visit. It does not collect server-side errors, and it keeps the file and line of an error rather than a full source-mapped stack trace. Many teams use both: their monitoring tool for the trace, GetSiteTape for what the visitor did.
Browsers hide the details of errors thrown by scripts loaded from another domain unless that script is served with the right CORS headers and a crossorigin attribute. Add those to your own scripts on a CDN and their errors are logged in full.
No. A new error alerts you once, and stays quiet for a week while it keeps happening. Bursts of server errors alert at most once an hour.
Request and response contents are off unless you turn them on, and even then values under names such as password, token or card are replaced before they leave the browser. You can also switch console recording off for a site.
Every plan, including Free. Errors are kept for as long as your plan keeps recordings.
Free for 1,000 replays a month. No card needed. Error logging is on every plan.
This page has kept track of your pointer and scrolling in your browser, and only there. Nothing was sent anywhere. Press the button to watch the replay.