Reference
Troubleshooting Sequential
Causes and fixes for common problems: missing events or session replays, an empty Watch, people counted twice or not found, Insights errors and dates.
On this page
- Check these first
- A page shows no data
- No events arrive
- Session replay does not record
- DevTools or masking shows less than you expect
- Watch is empty
- One person shows as several users
- "No one with this id in this project."
- Accounts is empty, or sessions have no account
- Insights tab messages
- Try it: "Preview failed"
- Findings: the Verification card
- Agents: "Waiting for your agent…" does not change
- Agents: a fix brief or a finding is refused
- A fix brief says "screen paused"
- Agents: Ask is refused or stops
- Agents: too many requests
- A link says "This link is for a project you can't open"
- Agents: claude.ai
- Dates differ by one day
- Recordings show "anonymous"
- Custom event properties are missing
- Known limitations
- Limits
- Need help
- Related
Check these first
- The project. Pages show the project selected in the sidebar switcher. Each browser remembers its own choice. A link with
project=selects its project for you. - The date range. Each page opens on the range that you last applied there for this project, in this browser. The first time, it is the last 10 days, as whole UTC days.
- Setup. Open Settings → Projects → your project → Setup. Sequential and Session replay show "receiving" or "no events yet". Another source shows only after its first event.
Project and date range: more detail
- Three checks explain most missing data.
- The switcher is at the top of the sidebar. Every page shows the selected project.
- Each browser remembers its own project choice. So a teammate can look at a different project.
- Pages show nothing outside the two dates at the top of the page.
- A teammate can see a different range, because each browser remembers its own range.
A page shows no data
Events, Sessions, Users, Accounts and Retention tell you why they are empty. The message names what the page shows, such as events, sessions or users.
| You see | What it means | What to do |
|---|---|---|
| "No events yet" and "<Project> hasn’t sent any events yet. Once it does, this page shows its events." | The project has received no event and no recording yet. | Click Set up <Project> →. It opens the project's Setup page. Install a source there. |
| "No sessions in this date range" and "Try a wider date range." | The project has data, but not in these dates. | Move the start date earlier, then click Apply. |
| "No users match these filters" and "Try removing a filter." | The project has data, but nothing in these dates matches your filters. | Remove a filter, then click Apply. |
While Sessions, Users or Accounts loads, it shows placeholder rows, not a count of 0.
If the project has no account, Accounts says "No accounts yet. Accounts appear when your app sends an account id." See "Accounts is empty, or sessions have no account" below.
No events arrive
- Open your site in a normal browser.
- In the developer tools, open the Network tab.
- Filter by the API address in your install snippet. For the Sequential SDK, this is
data-api.
In onboarding, the Install step shows when your first event arrives, and what Sequential refused. See Your first hour.
Check your install explains every response.
| Symptom | Likely cause | Fix |
|---|---|---|
401 unknown_ingest_key |
The key is mistyped, revoked or for another source. Or the project is archived. | Copy that SDK's key from Setup or Sources & keys. If archived, an owner or admin clicks Restore project under Danger. |
| Pendo requests get 401 | Your own Pendo API key is not registered. | An owner or admin pastes the apiKey on Setup → Pendo and clicks Register. See Pendo. |
403 Bot traffic not allowed |
The request looked automated. | Test in a normal browser. |
403 origin_not_allowed |
The project has a list of allowed origins, and this site is not on it. A sandboxed iframe or a data: page sends Origin: null, which is also refused. The Sequential SDK then stops for the rest of the page load and writes "[sequential] Events refused: this website is not on the project's allowed websites (origin_not_allowed). This page sends no more events." |
An owner or admin adds the site under Allowed websites on Sources & keys. See Organisations and projects. |
429 rate_limited, with Retry-After |
The project sent more than its event rate limit, 20,000 events a minute. The Sequential SDK waits, then sends again. | Send fewer events. Look for a capture call that runs in a loop, or on each scroll or mouse move. See Limits. |
503 overloaded, with Retry-After |
The Sequential server had too much work, so it refused some uploads for a few seconds. This is not a limit of your project. The Sequential SDK and the recorder wait, then send again. | Nothing to change. If it continues, contact Sequential support. See Limits. |
503 config_unavailable, with Retry-After: 30 |
Sequential could not read the project's settings, so it could not check the allowed origins. | Wait, then send again. If it does not stop, contact Sequential support. |
| Requests blocked, no status | Your Content-Security-Policy. | Allow the hosts your SDK's install page lists. |
Console shows [sequential] the script tag has no data-key — no events will be sent., or says that data-api is missing |
The tag misses an attribute, so the SDK does nothing. | Copy the snippet again from Setup. See Sequential SDK. |
| One browser sends nothing (Sequential SDK) | It remembers sequential.optOut(). |
Call sequential.optIn(), for example from your consent banner. |
Events stop after the consent page (Sequential SDK with data-opt-out) |
data-opt-out starts every page load opted out. |
After consent, call sequential.optIn() on every page load. |
| Amplitude events never arrive | Batching (useBatch) is on. Today, batched requests do not reach Sequential. |
Turn batching off. See Amplitude. |
| Setup says "receiving", but Events is empty | Wrong project or date range. | Fix both. For today's events, see "Dates differ by one day". |
| Events, grouped by User Session, shows a "(no session)" row | Events carry no session id. Mixpanel sets none by default. | Add Sequential's recorder with recording on. See Sessions. |
Setup checks every 5 seconds for 5 minutes, then stops. To check again, reload the page.
You can also ask an agent that has analytics:read: "Is Sequential dropping or refusing any of the data my site sends?" One get_overview call answers it. See Refused or dropped data below.
Refused or dropped data
get_overview has a setup check named ingest_refusals. It tells an agent what Sequential refused or did not store for this project in the window, and why. Or it tells that Sequential refused nothing.
- The check shows at most 3 lines, the largest first.
more_reasonscounts the others. Each line has the reason, the source, the count, the last day and a sentence. - A count is of requests: event batches for the Sequential SDK, uploads for recordings, or the requests of another tool's SDK. For
replay_event_malformedandheat_host_not_allowed, it is of events. - A refusal shows about a minute after it happens. Sequential keeps the counts for 30 days, so the oldest day of a 30-day window can be incomplete.
- A request with a wrong or revoked ingest key names no project, so Sequential cannot count it for your project. See No events arrive above.
- If Sequential cannot read the counts in time, the state is
unknown. - A host in a line can be another website that uses your project's public key.
- GET
/api/projects/:id/statusreturns the same lines for the last 7 days, underrefusals. In onboarding, the Install step shows them until its card says It works. Other pages do not show them yet.
| Reason | Sequential | What to do |
|---|---|---|
origin_not_allowed |
refused data from a website that is not in the project's allowed origins | If the host is your own site, an owner or admin adds it under Allowed websites. Do not add a host that you do not know |
origin_missing |
refused a request with no Origin or Referer header, because the project accepts only its allowed origins |
Check that nothing between the page and Sequential, such as a proxy, removes the Origin header |
bundle_not_allowed |
refused data from an app whose bundle id is not in the project's allowed bundle ids | |
trial_origin_locked, trial_replay_after_claim, trial_session_cap |
refused data because the trial project is not claimed: it accepts only local development, it records no mobile replay, or it reached its session limit | Claim the trial project. See Agent trials |
billing_limit_reached |
refused data because the organisation was over its monthly session allowance | Recording of new sessions starts again when the monthly allowance resets. An owner or admin sees the reset date in the organisation settings |
billing_required |
refused data because the project needs a paid plan | Write to support@usesequential.com |
replay_disabled |
refused recordings because session replay is off for the project or its platform | Turn on session replay, or stop the SDK from recording |
too_large, event_too_large |
refused recording uploads over a size limit | Flush the recorder more often, or mask or block large elements |
rate_limited |
refused recording uploads over the project's replay rate limit | Record fewer sessions, or mask large elements |
event_rate_limited |
refused event batches over the project's event rate limit | Send fewer events. Look for a capture call that runs in a loop, or on each scroll or mouse move |
session_cap |
refused uploads of a session that reached the largest size of a recording | |
malformed, replay_event_malformed |
refused uploads, or dropped recording events, that it could not read | Update the SDK |
empty_batch |
received batches that held no events, and stored nothing | Update the SDK |
heat_host_not_allowed |
dropped heatmap data from a page whose host is not in the allowed origins | |
config_unavailable, trial_unavailable, not_stored |
could not check or store the data. The fault was on Sequential's side | Nothing to change. A sender that tries a 503 again sends the data again. If it continues, contact Sequential support |
An agent sees [person] in your own site address
An agent gets a host or a URL with [person] in it, for example www.[person].com. A value that Sequential knows for a person has the word of your domain in it. Often this is a teammate's sign-up email with a tag, such as name+yourbrand@…, or a test user named after your product.
To fix it, add your site to the list of allowed websites: Settings → Projects → your project → Sources & keys → Allowed websites. From 10 October 2026, Sequential then keeps your own hosts readable for agents. See Privacy at a glance.
The list also refuses data from sites that are not on it. So add every site that runs your snippet. See Organisations and projects.
Not a fault
- "Waiting for the first event from the sources above" stays while a line on the list reads "no events yet". Only Sequential and Session replay can read so. This includes Session replay when you do not record. Read the line for your own source.
- A first event can take up to about a minute to appear. If a project already has some data, a new source can take up to about two minutes to change to "receiving".
- "Used … ago" on Sources & keys only means that a request used the key, for example to get settings. It does not prove that Sequential stores events.
No events arrive: more detail
- Keys. Each ingest key works only with its own SDK. Members, admins and owners can see keys. An archived project refuses all its keys. After Restore project, the same keys work again.
- Pendo. Pendo sends with your own Pendo API key. Paste the apiKey from your Pendo snippet.
- Bot traffic. Examples of automated requests: a headless browser, a test runner, curl or a server-side SDK. By design, automated tests do not appear in Sequential.
- Opt-in. Check that your consent banner calls
sequential.optIn()when the visitor agrees.data-opt-outis a default, not a stored choice. Sosequential.optIn()on one page does not carry to the next page. Do not call it only when the visitor clicks the banner. - Amplitude batching. Today, batched requests do not reach Sequential's Amplitude handling.
- Session ids. Instead of the recorder, you can register your own
$session_idsuper property.
Session replay does not record
Owners and admins change each project's recording settings under Settings → Projects → your project → Session replay. A saved change reaches websites on the next page load and apps on the next launch. See Recording settings.
| Symptom | Likely cause | Fix |
|---|---|---|
| No recordings at all | Recording is off, the platform is not ticked, or the project is archived. | Turn Recording on or tick the platform, then click Save. If archived, restore the project. |
| A website with PostHog, Mixpanel, Amplitude or Pendo records nothing | Their web recorders do not send to Sequential. | Add Sequential's recorder. See Session replay (web). |
| An app with PostHog's mobile SDK records nothing | The app's PostHog setup has session replay off. | Set sessionReplay = true, or enableSessionReplay: true in React Native. See Mobile apps. |
| The Sequential SDK or Smartlook records nothing | The project has no live Session replay key. | An owner or admin clicks Create key under Session replay on Sources & keys. |
| Only some sessions are recorded | Sampling is below 100 %. | Raise Sampling. |
| Short visits have no recording | Skip sessions under (ms), default 2,000, applies to each page load. | Lower it. 0 turns the rule off. |
No recordings, and the browser console shows [sequential] replay: masking_selector_invalid |
A saved Mask text selector or Block selector is not valid CSS in that browser. Sequential records nothing rather than record unmasked content. | Fix the selector under Masking → Advanced selectors, then click Save. See Masking and redaction. |
No recording from some visits, and the browser console shows a warning followed by [sequential] replay: recorder_start_failed |
The recorder could not start on that page in that browser. Nothing from that visit was recorded or sent, not even DevTools data. The warning just before the line names the cause. | If it happens only for some visitors, such as an old browser or one with an extension that changes how pages work, there is nothing to fix on your site. If it happens on every visit to a page, a script on that page usually replaces a built-in browser feature that the recorder needs: check that page's other scripts. A reload does not help: the same browser on the same page fails the same way. |
| Some pages are never recorded | URLs allow and deny lists match only the page path. | Use path patterns, for example /checkout/**. |
| Text shows as ███ and images are missing | Strict masking is the default. | Switch Masking to Balanced. Only new recordings change. Balanced also records attribute values and the full page address. On mobile, the app's SDK sets masking. See Masking and redaction. |
| Fonts look wrong, or background images are missing | Strict masking cuts font and image addresses to their domain, so the player cannot load them. | Expected under Strict. See Masking and redaction. |
| A recording stops partway | A 413 on /rec/: Max MB (default 25) or one upload too large. No 413: Max minutes (default 60). |
Raise the caps under Session caps. |
| A recording has gaps, with 429 responses | The project reached the upload rate limit: 50 MB a minute, shared by all its visitors. | Lower Sampling on busy projects. |
| A session has no ▶ Replay in Sessions | The row says why in its place. "Processing · ready by 14:05", with a time: the recording is not ready yet. "Expired": the replay period ended, or the recording has no start that the player can use. "No recording": the session ids are different, the session was not recorded, or the recording expired more than about a week ago. Before a row gets its state, a dim "…" ("Checking recording…") shows, also for a session without a recording. It also shows while Sequential tries again after a failed check. "Couldn't check recording": Sequential could not read the state, also on the second try. The recording can exist. | For "Processing", wait until that time. The row then shows ▶ without a reload. For "Couldn't check recording", reload the page after a minute. Otherwise see Sessions. |
| The player shows "This recording is still being processed — ready by 14:05.", with the time when it is ready | Sequential has not prepared all the uploads of the recording yet. With the default settings, that time is at most about 6.5 minutes after the last upload. When the time has passed, the player says "ready shortly". | Wait. While the browser tab is visible, the player checks again every 10 seconds and opens the recording when it is ready. A check that comes while the tab is hidden waits until you show the tab again. To check at once, select Check now. |
| The player shows "This is taking longer than expected." | The player checked every 10 seconds for at least 2 minutes and until 10 seconds after the time, but not for more than 10 minutes. The recording was still not ready. Sequential is behind on preparing recordings. The uploads are already stored. | The player checks again once a minute, up to 10 times, while the tab is visible. After that, select Check now, or open the replay again later. |
| The player shows "This session has no playable recording yet." | Sequential has an index of the recording, but it could not load enough of it to play. This can happen for a moment just after the recording becomes ready. | Select Retry. If it stays, check the session's events instead. |
| The player shows "This recording has expired." | The replay period of the first part of the recording ended. | See Retention and deletion. |
| The player shows "The recording could not be read right now. Retry shortly." | Sequential could not read the stored recording for a moment. | Select Retry. |
Session replay: more detail
- Platforms. The Platforms choices are Web, iOS and Android. Uploads that still arrive get 403
replay disabled for tenantorreplay disabled for platform. - Archived project. It refuses its keys. An owner or admin clicks Restore project under Danger.
- PostHog mobile. PostHog's mobile recorder sends app recordings to Sequential. Sequential's own recorder is for websites.
- Session replay key. Sequential SDK and Smartlook installs get the key from Sequential. The project must have a live replay key. Then Setup says "Session replay is included in this tag." Without one, Setup says that session replay needs a live replay key, with a link to Sources & keys.
- Sampling. Staging and development projects start at 10 %. Each session gets its decision once, when it starts. Sessions that already have a decision keep it.
- Short visits. If the visitor leaves a page before Skip sessions under (ms), that page sends nothing.
- URLs.
/checkout/**works. A pattern withhttps://or?never matches. If the allow list has entries, only matching pages are recorded. In a single-page app, recording stops at a denied path until the next full page load. - Strict masking. It masks all text, inputs and most attribute values. It blocks images, SVG, video, audio and iframes. It cuts addresses to their domain.
- Balanced masking. You must type the project slug to switch. Mark sensitive elements with
data-sq-mask. - Caps. When a cap is reached, recording ends for the rest of that page. "Too large" means over the server's upload limit. To keep uploads smaller, block heavy regions with
data-rr-block. - Rate limit. The 50 MB a minute limit applies unless your server sets another value.
- Missing ▶. The recording and your events do not share a session id. Sessions explains how ids are matched. The list stops showing a recording a fixed number of days after its last activity.
Upload and retention limits
- Server upload limit. One upload can be at most 5 MB, unless whoever runs your Sequential server changed it.
- Upload rate limit per IP address. The 50 MB a minute limit also applies to each IP address. So testers on one office network share it.
- Retries. After a 429, the recorder retries after 30 seconds. It keeps only its last 5 waiting uploads.
- When a recording stops playing. The number of days is the "N d" in the Session replay summary line. For a new project, it is 30. After it, Latest shows "Expired" in place of ▶ Replay. In Latest, Watch and the session list of a user, an older session past the first 200 can show ▶ for a moment, until its row gets its state.
DevTools or masking shows less than you expect
| You see | Likely cause | Fix |
|---|---|---|
| In DevTools, a failed image, script or font shows only a domain and █ blocks. You cannot see which file failed | Strict masks the path of every file that the page loads. The kind, status and timing stay | Expected under Strict. Reproduce the issue in a browser. Or, on a staging project, set Attribute text to URLs under Masking → Advanced selectors. See DevTools. |
In DevTools, a part of an API path shows as █ blocks, such as /api/orders/███████/items |
Strict masks id-like segments of an API call's route | Expected under Strict. The route words stay, so you can still see which call failed. |
| An error message or console text shows █ blocks in a path | Under Strict, Sequential masks UUIDs, long hex runs and runs of 6 or more digits after a / |
Expected under Strict. |
| A replay shows the value of a checkbox, radio button or drop-down option in the page's HTML | Balanced records page markup as it is. Only what users pick or type is masked | Use Strict, or put data-rr-block on the element. See Masking and redaction. |
400 masking_preset_conflict from PATCH /api/projects/:id/config |
The request names the preset strict and sets mask_attributes to urls or off. Sequential saved nothing |
Send the preset custom to loosen attribute masking, with confirm and the project slug if the change records more. Or leave out mask_attributes, or set it to strict. |
Watch is empty
Watch ranks only judged sessions.
| You see | Likely cause | Fix |
|---|---|---|
| "Background judging is switched off for this project." | An owner or admin switched it off. | An owner or admin turns it on under Settings → Projects → your project → Insights. |
| "Background judging is off for every project on this Sequential server." | The server does not run background judging. | Ask whoever runs your Sequential server. |
| "This Sequential server has no AI key set up, so it can't judge sessions." | The server has no key for the judge. | Ask whoever runs your Sequential server. |
| "Sequential can't tell right now whether background judging is running for this project." | Sequential could not read the project's settings. | Reload the page later. |
| "Nothing judged yet · N waiting" | Sequential judges a session about 30 minutes after its last event. | Wait, or widen the date range. |
| "Couldn't check whether judging is on" | Watch could not check if judging is on. | Click Retry. |
| "Not yet judged: N" never reaches zero | Some sessions never get a judgment. | Send a session id with every event. See Sessions. |
| A session you expect is not listed | It is outside the Sessions date range. | Widen the date range. |
"N waiting" and "Not yet judged: N" also count sessions that will never get a judgment. See Watch: sessions worth your time.
Watch: more detail
- Turning judging on. Owners and admins turn background judging on under Settings → Projects → your project → Insights. Sequential then also judges the unjudged sessions from the past 7 days.
- Judging off, with verdicts. If sessions in the range already have verdicts, Watch keeps the list and shows the reason above it.
- Wider range. Widening the date range includes older sessions.
- Delay. Sequential checks every 5 minutes. A busy project adds delay. When the daily allowance runs out, this also adds delay.
- Counts. "N waiting" and "Not yet judged: N" count all sessions in view that have no judgment.
These never get a judgment:
- Sessions with fewer than 3 meaningful events. By design, very short sessions stay unjudged.
- Events that have no session id.
- Sessions whose last event was already more than 7 days old when judging reached them.
- Sessions where the judge returned an error.
One person shows as several users
Each event has one user id: the identify value, or before identify, an anonymous id per browser. See Users and identity.
| Symptom | Likely cause | Fix |
|---|---|---|
| The same person counts as several users | Your app does not identify them. | Call identify at sign-in, and on page load for signed-in people. See Identify your users. |
| A new user on every page load (Sequential SDK) | The browser blocks storage. | Identify signed-in users on every page load. |
| A person who signs up during a visit appears twice on Users (Sequential SDK) | The link to the anonymous id can take up to 5 minutes to show. | Wait 5 minutes, then reload. |
| A person who signs up during a visit appears twice on Users (Amplitude, Pendo or Smartlook) | Sequential joins the two ids only for the Sequential SDK, PostHog or Mixpanel. | None yet. This is a known limitation. |
| Funnels, flows or retention count one person twice | Sequential SDK, PostHog or Mixpanel: the link to the anonymous id can take up to 5 minutes to apply. Amplitude, Pendo or Smartlook: nothing links the two ids. | Sequential SDK, PostHog or Mixpanel: wait 5 minutes, then run it again. Amplitude, Pendo or Smartlook: keep a funnel on one side of identify. |
| Dashboard counts more users than Users | The Dashboard tiles count user ids. They do not use the link to the anonymous id. The Traffic tile labels this figure User IDs, with the hover text "Distinct user ids. A visitor who signed in during a visit counts once per id they used." | None. This is expected. |
| The Sessions card of a user page shows fewer sessions than the Users list | The card keeps its own date range. The Sessions stat at the top counts all the data, so it can be higher. | Set the same dates on both pages. |
| One person appears under two values you recognise | Your app passes different values to identify. Sequential does not merge identities. | Pass one value per person. |
| Smartlook: each person appears twice | Only the identify call carries the user id. | See Moving from Smartlook. |
| Two people show as one on a shared device | The next person keeps the previous user's id. | Call your SDK's reset on sign-out, for example sequential.reset(). |
Identity: more detail
- Storage. Sequential stores every event under one user id. After identify, it is the value your app passes.
- New users from one person. Before identify, each browser has its own anonymous id. So a second device, a private window or cleared storage makes a new user.
- Blocked storage. The browser does not keep the anonymous id between pages.
- Sign-up during a visit. Later events go under your id. With the Sequential SDK, PostHog or Mixpanel, Users lists one user and counts that session once. With Amplitude, Pendo or Smartlook, Users lists both ids, and "Total sessions" counts that session twice. With every SDK, a funnel across sign-up loses people at that step.
- Two values. For example: an email on one screen and an account id on another. Sequential takes the value you pass at face value. Use one identifier for each person. Pass the same value everywhere, every time.
- Smartlook. Other events stay under Smartlook's visitor id.
"No one with this id in this project."
The user page says this when no event that Sequential keeps has the id, in any dates. Check that you have the exact id that your app sends. With the Sequential SDK, PostHog or Mixpanel, an anonymous id that is linked to the person opens the same page.
If the page loads but its Sessions card says "No sessions in these dates.", the card keeps its own date range. This is the range that you last applied on the user page for this project, in this browser, or the last 10 days in UTC. Move the start date earlier and click Apply. Or open the user from a replay's header.
User not found: more detail
- The page searches for the exact user id. It does not take the range from Users, Sessions or Watch. Here, the message means "not in this date range".
- Try again reloads the same range.
- A replay's header keeps the day of the recording in the range.
Accounts is empty, or sessions have no account
On Accounts, a session without an account id is never a row. See Users and accounts.
| You see | Likely cause | Fix |
|---|---|---|
| "No accounts yet. Accounts appear when your app sends an account id." | The project has no account. Accounts come from Pendo and from the Sequential SDK's sequential.account(). Group calls from PostHog, Mixpanel and Amplitude are not used for accounts yet. |
With the Sequential SDK, call sequential.account(id) after sign-in. With Pendo, add account: { id: … } next to visitor in pendo.initialize. |
| "No account matches these filters." or a message about a health | No account matches your filters in these dates. | Click Clear filters. It keeps the dates. |
| "N sessions in this range had no account" | These sessions have no account id. Accounts counts them, but does not list them. | With Pendo, set the account before the first event on each page. With the Sequential SDK, call sequential.account() before those events. Only events sent after that are linked to it. Events from other SDKs have no account id. |
| "Accounts are unavailable right now." | Sequential could not read the list. | Click Retry. |
| An account reads "Account" and the start of its id | Your app sends no name for the account. | Send a name property, such as name or company_name, with the account. See Name and plan. |
Insights tab messages
Insights judges one recording on demand. See Session insights.
| The tab says | Likely cause | Fix |
|---|---|---|
| "On-demand judging has used this project's daily allowance." | The daily allowance for new on-demand judgments is used. | Wait for the reset time the tab shows. |
| "Insights failed" with "Sequential could not judge this session. Try again." | The judge returned no usable answer. | Click Retry. |
| "Insights failed" with "Timed out after 45 s — try again." | The tab stopped waiting after 45 seconds. | Click Retry. |
| "Insights failed" with "Insights failed (Insights can't run right now. Try again shortly.)" | Sequential cannot read the daily allowance, so it does not judge. It spends nothing. | Click Retry after about 30 seconds. If it continues, ask whoever runs your Sequential server. |
| "Insights aren't set up on this server" | On-demand judging is not configured. | Ask whoever runs your Sequential server. |
Four more messages need no fix. See "Insights: more detail".
Try it: "Preview failed"
Try it in the rubric editor judges your draft on one session. See Customise the rubric.
| You see | Likely cause | Fix |
|---|---|---|
| "Preview failed" with "Can't test the rubric right now. Try again shortly." | Sequential cannot read the allowance of Try it, so it does not judge. It spends nothing. | Click Retry after about 30 seconds. If it continues, ask whoever runs your Sequential server. |
Insights: more detail
- "Not enough activity to judge — fewer than 3 meaningful events": too little happened in the recording. Nothing to fix.
- "Already judged — same events, same questions, so the verdict below is unchanged.": Re-run has a 10-minute cooldown. Nothing to fix.
- "Insights run once the recording is ready (by 14:05).", with the time when the recording is ready: the recording is still being processed. Keep the replay open: the tab judges it on its own once the player loads the recording. If the player stopped checking, select Check now.
- "This recording has expired, so it can't be judged.": the replay period ended. Nothing to fix.
- Allowance reset. The tab shows the reset in your local time and as 00:00 UTC.
- While the allowance is used. Judgments saved in the last 7 days still open, unless someone edited the project's questions since then. If a verdict is already on screen, it stays. Re-run is hidden, because it cannot make a new judgment.
- Not set up. On-demand judging is not configured on your Sequential server.
- Time-out. If the judgment finished in the meantime, Retry gets it, and no new judgment is made.
- Cooldown. Within 10 minutes of a Re-run that made a new judgment on the same session, another Re-run keeps the saved judgment.
Findings: the Verification card
The Verification card on a finding shows what the rate did after a release. See Findings and fixes.
| The card says | Likely cause | Fix |
|---|---|---|
| "A release in staging (…) named F-12; this project measures production." | The release marker is for another environment. Sequential measures only markers for the project's environment. The card lists up to 5 of the other markers, newest first. | Record a marker for the project's environment that names the finding. Check the environment that your CI job sends. |
| "Couldn't check for a release just now; reload the page to try again." | Sequential could not read the release markers. It does not mean that no release named the finding. | Reload the page. |
| "Not measured yet: no release has named F-12." | No marker for the project's environment or for another environment names the finding. | Name the finding in finding_ids of the marker. |
Agents: "Waiting for your agent…" does not change
After Create token in onboarding, the step checks if the token was used. It shows "Waiting for your agent…" and checks every 5 seconds, only while the tab is visible, for 30 minutes. Then it shows "No call from your agent yet." and Check again.
| Likely cause | What to do |
|---|---|
| The agent has not sent a request yet | Restart the agent, so that it reads the new setup. Ask it something. Then press Check again. |
| The setup went to the wrong place | Use the setup for your agent, with the note under it. Claude Code needs --scope user. Cursor reads ~/.cursor/mcp.json. Codex reads ~/.codex/config.toml. Claude Desktop reads claude_desktop_config.json. |
| Claude Desktop did not read the setup | Quit Claude Desktop and open it again. Its setup runs npx, so the computer needs Node.js. |
| The agent uses an old token | Paste the setup again. It must contain the new token. |
| The new token no longer works | The step counts a use only while the token works: not revoked, not expired, and its project not archived. Create a new token. |
Check again checks at once, then for 30 more minutes. You can also leave with Skip for now. The token stays. Later, when the agent connects, the token on the Coding agents card of Agents shows "Used" and a time.
On Agents, "Activity isn't available right now." means that Sequential could not read the agent call log. It does not mean zero calls. Press Try again. Zero calls shows "No agent calls in the last 7 days." If Sequential looked up the token names and did not find a token, the page shows "a removed token". If Sequential could not look up the names, each token shows as "a token (names unavailable)", and the page says "Token names unavailable right now."
Agents: a fix brief or a finding is refused
By default, a token does not get a fix brief or a finding that Sequential could not fully screen. See Privacy at a glance.
| You see | Likely cause | Fix |
|---|---|---|
503 screen_unavailable from GET /api/findings/:n or /api/findings/:n/brief |
Sequential could not screen every quoted passage of the finding. The screen is not set up, its daily allowance is used up or it did not answer. Or the finding has more quoted text than the screen reads. | Try again after the Retry-After time, 60 seconds. If it continues, ask the operator of your Sequential server. |
400 tool_error from POST /api/agent/get_fix_brief or /api/agent/get_finding, or an MCP tool error that says "this server requires screening" |
The same cause. | The same fix. |
The app, with a signed-in person, shows the brief also when the screen did not run. The operator can turn off the refusal for tokens with FINDINGS_SCREEN_REQUIRED=false. From 11 October 2026, the app does not show the brief when Sequential cannot check it for known people. See Findings and fixes.
A fix brief says "screen paused"
| You see | Likely cause | Fix |
|---|---|---|
The first lines of the brief say "screen paused, N quoted passages withheld". Each quoted passage reads [instruction-like text removed]. |
Sequential cannot read the allowance for screening, and the project reached 10 screenings in a minute on this server process. So Sequential did not screen the brief, and it withheld every quoted passage. | Open the finding again after a minute, or ask the agent to get the brief again. Sequential does not keep a paused result. |
Agents: Ask is refused or stops
The tool ask_sessions runs Ask for an agent. See Ask: find sessions by describing them. POST /api/agent/ask_sessions answers with the status below. Through MCP, the refusal is a tool error, and its text is the same JSON. When there is a Retry-After header, the JSON also has retry_after_sec. Sequential charges nothing to the allowances on a refusal. This includes 502 ask_failed: the judge answered for no session, so nothing is charged.
| You see | Likely cause | Fix |
|---|---|---|
400 limit_too_large |
limit is more than 50. |
Use 50 or less. Continue with next_cursor. |
400 bad_query |
The description has a line break or a control character, or it is shorter than 3 characters without double quotes, backticks and extra spaces. | Use one line of 3–200 characters. |
402 budget_exhausted |
The agent allowance of the project is used up, or the first group of up to 8 sessions would go over it. | Try again after resets_at, at midnight UTC. The operator can raise AGENT_DAILY_TOKENS. |
429 token_daily_limit |
This token used its own daily allowance, or the first group of up to 8 sessions would go over it. | Try again after resets_at, at midnight UTC. The operator can raise AGENT_TOKEN_DAILY_TOKENS. |
429 ai_concurrency |
Another ask_sessions call of this project still runs on this server. |
Try again after 10 seconds. Do not send calls at the same time. |
503 ai_busy |
This server process already runs 2 ask_sessions calls, of any projects. |
Try again after 10 seconds. |
503 ai_unavailable |
Sequential cannot read the allowances, so it does not spend. | Try again after 30 seconds. If it continues, ask the operator of your Sequential server. |
503 ask_unavailable |
Judging is not configured on your Sequential server. | Ask the operator of your Sequential server. |
502 ask_failed |
The judge failed for every session of the page. | Try again. |
The answer has stopped: "budget" |
A limit ran out during the call, or Sequential could no longer read the limits. stop_reason names it. The judge did not check the rest of the page. |
Call again with next_cursor. For budget_exhausted or token_daily_limit, call after midnight UTC. For ai_unavailable, call again in a minute. A cursor used hours later continues in a list that has changed: some sessions can be skipped or come again. |
A wrong argument, such as days over 30 or an unknown cursor, is a 400 tool_error.
Agents: too many requests
Sequential limits how often access tokens can call it. See Limits.
| You see | Likely cause | Fix |
|---|---|---|
429 rate_limited |
This token sent more than its limit, by default 120 requests a minute. | Wait for the Retry-After time. Send fewer requests with this token. |
429 project_rate_limited |
The tokens of this project together sent more read requests than the project read limit, by default 600 a minute. Sequential refuses them only when the operator turned this limit on with TOKEN_PROJECT_LIMIT_ENFORCE=true. |
Wait for the Retry-After time. Send fewer read requests from all the agents of this project. The operator can raise TOKEN_PROJECT_REQUESTS_PER_MINUTE. |
503 rate_limit_unavailable |
Sequential cannot count the requests, so it refuses them. | Try again after 30 seconds. If it continues, ask the operator of your Sequential server. |
The token limit refuses the HTTP request, also on /mcp. The project read limit refuses each tool call: through MCP, the refusal is a tool error, and its text is the same JSON, with retry_after_sec.
A link says "This link is for a project you can't open"
A link can name its project with project=. Links in agent answers do. See Links that open a project.
| You see | Likely cause | Fix |
|---|---|---|
| "This link is for a project you can't open" | You are not a member of the organisation that owns the project. Or the project is archived. Or you are signed in with an account in another organisation. Or the project id in the link is wrong. | Sign in with the account that is a member. Or ask an owner or admin of the organisation to invite you. For an archived project, an owner or admin restores it. Go to your sessions opens the project that you have selected. |
Sequential never opens another project in place of the one that the link names.
Agents: claude.ai
See Connect claude.ai.
| You see | Likely cause | Fix |
|---|---|---|
| You removed the connector in claude.ai, but the connection still shows under Agents | In our tests, claude.ai did not tell Sequential when a connector was removed. The connection stays live, and it counts toward your limit until it goes idle 30 days after claude.ai last renewed it. | Press Disconnect on the connection under Agents. If you connected claude.ai again, the older connection shows "Replaced by a newer connection?". See An older connection that stays live. |
| "You have reached your limit of 10 connections to …", or the project shows "at its connection limit for you" | You have 10 connections to this project. Connections that you removed only in claude.ai still count. Connections that are still being set up count too. | Disconnect the connections that you no longer use under Agents. A connection that is still being set up shows "Connecting…". Press Cancel on it, or wait: it clears within 10 minutes. |
| "… has reached its limit of 50 connections." | The project has 50 connections, from all people. | An owner or admin disconnects old ones under Agents. |
| claude.ai does not follow the instructions of the Sequential server | When we tested it (October 2026), claude.ai did not give the server's instructions to its model. The model does get each tool's description and the answers to its tool calls. | Say in your message what you want claude.ai to do. |
| A call fails with "This connection is paused while its project is archived" | The project is archived. | Restore the project. The connection works again. |
| claude.ai stops working after you changed or reset your password | A password change or reset ends every claude.ai connection that you made. | Connect claude.ai again. |
| History on Agents shows a claude.ai connection as "Access lost", "Ended after a password reset", "Ended for security", "Ended: the app was removed", "Revoked by Sequential support" or "Ended", and nobody pressed Disconnect | Sequential or claude.ai ended the connection. "Disconnected" shows only when someone pressed Disconnect or Cancel. "Ended" covers the other cases, for example a password change on Profile. See History. The Audit log shows how it ended. | Connect claude.ai again. |
| claude.ai shows "Couldn't check whether claude.ai is available" and Retry, and onboarding has no claude.ai tab | Sequential checks once, when the page loads, that the claude.ai sign-in is on. The check got no answer: a network error, a server error, or no answer within 5 seconds. | Press Retry. If it stays, ask whoever runs your Sequential server. |
| claude.ai shows "Not available yet.", and onboarding has no claude.ai tab | Your Sequential server answered that the claude.ai sign-in is off. | Ask whoever runs your Sequential server. |
| "An owner or admin connects Claude and ChatGPT for this project." | Your role is member or viewer. | Ask an owner or admin to connect claude.ai. |
Dates differ by one day
Sequential stores times in UTC, and date ranges are whole UTC days.
- The default range can end on the wrong day. West of UTC in the evening, the end date is already tomorrow's date. East of UTC early in the morning, it is still yesterday's date, so the range leaves out the events since midnight UTC. Set the end date to your today to include them.
- The range includes the whole end date, on every page.
- Days on the Events chart and Retention cohorts are UTC days.
Dates: more detail
- The two dates at the top of the page default to UTC dates.
- Some times are converted, some are not. The Sessions, Users and Events lists show a relative time, such as "3 h ago". Hover it for your local time. Ask results show your local time.
- A chart day runs from midnight to midnight UTC. So evening activity in the Americas counts on the next UTC day.
- In a funnel's drill-down, the user detail page can show the UTC time without conversion.
Recordings show "anonymous"
The replay header says "anonymous" when the recording has no user id. The ‹ › buttons to the user's previous and next session then stay disabled. This happens:
- with Amplitude, until your app calls
setUserId - with only the Smartlook compatibility script on the page
- with the Sequential SDK, when the browser blocks storage
Sessions, Watch and the user detail page still show the right user.
Why the recording is anonymous
- The recorder takes the user id from PostHog, Amplitude, Mixpanel, Pendo or the Sequential SDK on the page. It does not read a user id from the Smartlook compatibility script.
- The recorder reads the user id of the Sequential SDK from the storage of the browser.
- Your events still carry the identified id.
Custom event properties are missing
To see what Sequential stored, click the icon at the end of the event's row on Events (Event details). A side panel lists its properties and its Raw event data.
What each SDK supports lists which properties each SDK keeps.
| Symptom | Likely cause | Fix |
|---|---|---|
| In Event details, but a filter finds nothing | is on Text matches only the exact text of the whole value. A date and time value matches only with the type Date. | Copy the value from Event details exactly, or use contains. For a number or a date, choose the type Number or Date. |
capture() throws "… is a reserved event name …" |
The Sequential SDK reserves names that start with $. |
Rename the event. |
| A Sequential SDK event never arrives | Its properties could not become JSON, so the SDK dropped it. | Send strings, numbers and booleans. |
register() properties disappear after a page load |
Sequential SDK super properties last only for the page. | Call register() on every page load. |
| User properties you set do not appear | The Sequential SDK and PostHog do not store them as user properties. Properties passed on the first posthog.identify() do not show anywhere in Sequential. Today, Sequential refuses Mixpanel's people.set from the browser. |
Read them on the event. With PostHog, use posthog.setPersonProperties(). |
Mixpanel properties that start with $ are gone |
Sequential drops them, except element properties. | Rename them without the $. |
Pendo track properties are not on the event |
Sequential stores them as user properties. | Filter with Visitor Property. |
A URL in a property reads [redacted] |
Sequential redacts URL query values, except attribution parameters such as utm_*. |
See What Sequential keeps from page URLs. |
Event properties: more detail
- Raw event data. The icon opens the Raw event data window. It shows the stored properties of the event.
- Filters. is on Text matches only the exact text of a value. For a number or a date and time, choose the type Number or Date.
- JSON. Examples of values the SDK cannot turn into JSON: a BigInt, or an object that refers to itself. Sequential stores objects and arrays as JSON text.
- Mixpanel
$properties. Sequential drops them when it stores the event. - URLs. Sequential redacts query values when it stores them.
- User properties. Check the support matrix before you rely on user properties.
Where user properties go
- Sequential SDK. It keeps
identify()properties on the$identifyevent that the call sends. A repeatsequential.identify()with the same id and the same properties sends nothing. From 11 October 2026, a repeat with changed properties sends a new$identifyevent with them. - PostHog. Sequential keeps
$setand$set_onceonly when they arrive on a$setevent. That event comes fromposthog.setPersonProperties()or a repeat identify with the same id. - Mixpanel. Sequential refuses
people.setfrom the browser today.
Known limitations
These have no fix yet:
- Amplitude batching (
useBatch) does not reach Sequential. - Only the Sequential SDK, PostHog or Mixpanel joins a visitor's events from before identify to the identified user. With Amplitude, Pendo or Smartlook, the two ids stay two users on every page.
- The Dashboard tiles count user ids. They never join the ids. On the Traffic tile, this figure is labelled User IDs, with the hover text "Distinct user ids. A visitor who signed in during a visit counts once per id they used." On the Top pages tile, each row reads like "12 user IDs".
- Sequential refuses Mixpanel's
people.setfrom the browser.
Limits
- Sequential refuses automated requests, such as a headless browser, a test runner, curl or a server-side SDK.
- Staging and development projects start with Sampling at 10 %. Raise it to record every session.
- The 50 MB a minute upload limit also applies to each IP address. Testers on one office network share it.
- By default, a recording stops playing 30 days after its first part arrived.
- Watch never judges sessions with fewer than 3 meaningful events, sessions older than 7 days when judging reaches them, or sessions where the judge failed.
- With Amplitude, Pendo or Smartlook, a funnel across sign-up loses people at that step. Nothing links the ids from before and after identify.
- The Event Property filter matches only the event's own properties.