Troubleshooting
Why a tab left open overnight stops getting answers
The widget holds a short lived token rather than the public key, which is what stops a conversation being taken up again later from somewhere else. The consequence a visitor meets is that a conversation left sitting stops working and a reload fixes it. The wording that explains this lives in the response rather than on the screen, which is the part worth knowing before you go looking for it.
The symptom
A conversation that was working stops answering. The visitor sees the offline message you configured, and everything works again the moment the page is reloaded.
What it usually is
In rough order of how often each one turns out to be the answer. Work down rather than across: each carries a way to tell whether it is yours before you change anything.
- 1
The token is older than 15 minutes
- Why
- A visitor token lasts 15 minutes. Refreshing one keeps the original session start rather than restarting the clock on the session as a whole, so a conversation open longer than that fails on its next message rather than at some random moment.
- How to confirm it is this one
- In the network tab the chat request returns 401, and the response body reads: Your session expired. Reload the page to continue. The panel never shows that sentence, so the network tab is the only place it appears.
- Fix
- Reload the page. There is nothing to configure and nothing was lost: every message already sent is stored against the conversation and is in your dashboard.
- 2
The visitor moved to another page and the thread started again
- Why
- The panel is a document inside the page, so a navigation ends it and the next page begins a new one. The conversation does not carry across, and to a visitor that is indistinguishable from an expiry: they ask a follow up and the assistant does not know what they are talking about.
- How to confirm it is this one
- In the conversation list you have two rows for the same visitor identifier a minute or two apart, with page addresses that follow on from one another. That is one person crossing a link, not a session that ran out.
- Fix
- Nothing to fix. It is worth knowing when you read conversations, because a thread that looks abandoned halfway through is often the same person carrying on under the next row down.
- 3
The assistant was paused while the conversation was open
- Why
- A paused assistant refuses new sessions outright and stops answering existing ones. The two failures look different because they happen at different points: a panel opened after the pause never gets a session at all, while a panel that already had one has its next message refused.
- How to confirm it is this one
- Opening the widget fresh puts a line in the panel reading: This assistant is currently paused. A conversation that was already running instead shows your offline message, and the chat request in the network tab returns 404 saying the assistant is unavailable.
- Fix
- Set the assistant back to active. Allow up to a minute before deciding it did not work, because the configuration the widget reads is cached for that long.
- 4
The session is older than 24 hours
- Why
- A session cannot outlive 24 hours from the moment it started, whatever happens in between. This is the ceiling that refreshing a token cannot lift, and it exists so that a token taken out of a browser has a definite end rather than an open ended one.
- How to confirm it is this one
- The chat request returns 401 as above, but the body reads: Session too old. That wording appears in no other situation, so it settles the question on its own.
- Fix
- Reload. In practice this is a tab left open overnight or across a weekend, on a kiosk, a shared machine, or a second monitor nobody ever closes.
If none of those fit
The status code separates these from everything else that stops an answer. 401 is the session, and the wording in the body says which of the two it was. 403 is an origin or a token binding problem rather than a timing one. 429 is a rate limit. A request that succeeds and streams an error is the workspace quota. Only the first of those is fixed by reloading, which is why the code is worth reading before anything is changed.
Questions
- Why 15 minutes rather than a day?
- Because the token is minted for anybody who opens a page and then lives in a browser nobody controls. A short life is what makes a copied one nearly worthless, and a reload costs a visitor nothing. The 24 hour ceiling exists so that even a token being kept alive has an end.
- Can the visitor be shown the real message?
- Not directly. The panel shows the offline message from your appearance settings whenever an answer does not come back. What you can do is word that message so it covers this case: something suggesting a page reload reads sensibly for a timeout and for a genuine outage alike.
- Does the visitor lose the conversation when they reload?
- From their side, yes: the panel starts fresh from the greeting. From yours, no. The messages are stored against the conversation and are in the dashboard, and anything said after the reload is stored as a new conversation beside it.
Keep reading
- The chat widget is covering my cookie bannerThe launcher is fixed to a bottom corner above almost everything else. What you can move, what you cannot, and what to move instead.
- The chat panel is behind the keyboard on a phoneOn a narrow screen the panel fills the viewport. What the on screen keyboard does to that, and which parts of it are the browser's decision.
- No email arrives when a visitor leaves their detailsThe enquiry is saved before the notification is attempted, so nothing is lost. Four reasons the email did not land, and how to tell them apart.
- Metrics and termsWhat the numbers on the insights page actually count.
- Everything that goes wrongSymptom, cause, how to confirm which one, and the fix.
Try it on your own material
Upload a document or point it at your site, paste one line of HTML, then ask it something only your business could answer.