Troubleshooting
Start with one source, one event, and the Live view. Most connection problems come from an exact origin mismatch, a missing build variable, a route that never calls capture, or a privacy signal.
Quick connection check
- Open the correct source.App and Website sources have separate keys and Live views.
- Confirm collection is on.Usage events must be enabled for page views and custom events.
- Trigger one known event.Open an allowed public page or run the app once.
- Wait up to one minute.New keys and collection changes are cached briefly.
No browser request appears
Open the browser's developer tools, choose Network, and look for a POST request ending in/v1/batch. If there is no request:
- Confirm the downloaded client loads without a 404 or blocked script error.
- Confirm the public ingest key was present when the site was built and deployed.
- Confirm the current pathname is in your public-page allowlist.
- Confirm your code calls
pageview()ortrack(). - Check whether Global Privacy Control or Do Not Track is enabled.
- Check the consent state if the client starts with
enabled: false. - Check whether a browser extension or Content Security Policy blocked the request.
Vital does not capture page views automatically and does not capture browser crashes. That is expected behavior, not a failed connection.
Read the response
| Status | What to check |
|---|---|
| 202 | The batch was handled. Read the accepted count and rejected list because individual items can still be rejected. |
| 400 | The request shape or an app batch field is invalid. Compare it with the current source setup example. |
| 401 | The key is invalid, revoked, the wrong kind, or not allowed on this website origin. |
| 413 | The request is too large. Send fewer items or smaller custom properties. |
| 429 | The client is sending too quickly. Back off and respect the Retry-After header. |
| 503 | Vital is temporarily unavailable. Retry later with the same item IDs. |
Website origin checks
Compare the page's exact origin with the Website source. Scheme, hostname, and port must match. Add both apex and www origins when both are used. Preview deployments need their own approved origin and should use a separate source or key when practical.
The request succeeds but Live is empty
- Make sure you opened the same source that issued the key.
- Check that Usage events is enabled for page views and custom events.
- Read the 202 response body for rejected item IDs and reasons.
- Keep an app event's ID stable across retries. Creating a new ID changes the item.
- Check the event timestamp and device clock.
- Allow up to one minute after a key or policy change.
A day ends earlier than expected
Daily charts and the Today range follow the source's reporting timezone. New sources use the browser's timezone when created. Older sources may still use UTC, so their day can change before midnight where you are.
The reporting timezone is not currently editable in Source Settings. Contact us if it needs correcting. Changing a reporting day requires keeping historical summaries consistent too.
Debug without exposing private data
When asking for help, share the HTTP status, rejection reason, source type, platform, and the failing event's shape with private values replaced. Do not post full keys, authorization headers, install IDs, report text, attachments, or user data.
If a browser key was copied outside its intended site, revoke it and create another. Then update the deployment environment and rebuild. App and website ingest keys can be replaced without changing the rest of the product.
Send the safe details above to info@syvr.dev. We can trace the source setup without needing your users' data.