The launcher does not appear
- Anonymous usage is off (
public_chat_disabled). It is off by default. The browser console shows one warning saying so. Switch it on in Channels → Web widget and press Save, then reload the page. Logged-in chats do not need it. - The script did not load. Check the browser console and network log for the
widget.jsrequest. A Content Security Policy must allow the CDN; see Production setup. - The agent ID is wrong. It must be the full
agent_…value from the dashboard, not a bare UUID. launcheris set tonone. Then only your own button opens the chat, throughOsviChat.open().
”This chat is not enabled for this website”
The page’s origin is not in Allowed websites (origin_not_allowed). Compare it exactly, including scheme, host and port: https://www.acme.com and https://acme.com are different, and https://*.acme.com does not cover acme.com. An empty list allows no website. On your computer, tick Allow localhost for testing. The rules are in Allowed websites.
”This chat is unavailable”
The agent is stopped, archived or the ID does not match an agent (agent_inactive, agent_archived, agent_not_found). Start the agent or fix the ID in your snippet.
”This chat is no longer available”
Anonymous usage was switched off while the panel was open (public_chat_disabled). The transcript stays visible and the composer is disabled. Switch it back on to accept new messages.
”This chat is busy right now”
The agent reached its daily cap of anonymous conversations (daily_limit_reached). Only new conversations are refused; conversations already started that day keep working. The cap resets at 00:00 UTC. Raise Conversations per day, and check the usage counter for traffic you did not expect; see Abuse and availability.
”Too many messages” with a countdown
A rate limit was reached (rate_limited): 20 messages a minute in one conversation, or 60 an hour from one IP for the agent. The message is sent automatically when the countdown ends, up to three times, then shown as not sent with Retry. Visitors behind one office or mobile network share the hourly limit. If real traffic keeps reaching it, contact Osvi AI support.
A “Too many requests. Please try again in a few minutes.” message instead means too many new conversations or tokens came from one IP; it is not retried automatically. Custom clients should honour Retry-After.
”This conversation has reached its message limit”
The agent has a per-conversation message limit and this conversation reached it (session_limit_reached). The visitor can press New chat to continue. If real conversations reach it, raise or turn off Messages per conversation. On SDK 0.1.2 the visitor instead sees “Message not sent” with a Retry that fails again.
A logged-in chat does not connect
Your token endpoint failed or returned an invalid token (token_failed, invalid_token), or the customer ID uses the reserved web: visitor format (invalid_customer_id). Check that the endpoint returns token, wsUrl and expiresAt, and see Logged-in users.
The conversation ended or did not resume
The session closed or went dormant after inactivity (session_closed, session_not_found); start a new chat. Dormant sessions cannot be resumed from the browser. In server mode, your backend starts a fresh session when the SDK calls getToken({ newSession: true }).
The chat forgot a visitor (Safari and private windows)
Anonymous chat remembers a visitor in browser storage. Safari’s privacy controls, private windows or clearing site data remove it, so the visitor starts a new chat. Server mode keeps history on your backend and stores nothing in the browser. The keys are listed in Browser storage.The unread badge is wrong for a returning visitor
The badge is checked on page load, and again when the tab becomes visible (at most every 30 seconds) until the panel is first opened, compared with theosvi.chat.seen.<agentId> marker in browser storage. The widget opens no live connection until the panel is opened, so new replies update the badge only after the panel has been opened once on that page.