Troubleshooting the Customer AI Assistant chat

IMPORTANT: This feature is available in private preview mode and accessible only on selected workspaces. To get access, contact your account manager or Synerise Support.

This article lists the most common problems with the chat on a website, their causes, and how to fix them. Start with the section that matches what you see.

The launcher or the chat does not appear

The assistant is not available for the workspace. The chat checks this before it starts and renders nothing when the assistant is switched off, not saved, or the credits are exhausted. If you show the launcher only when onLoad reports assistantVisible: true, the launcher stays hidden as well. Open AI Hub > AI Assistant, check that the assistant is saved and works in the Preview tab, and contact Synerise Support if the credits are exhausted.

The tracking code is missing or loads after the chat. The chat identifies the customer through the Synerise Web SDK. Without it, its requests are not authenticated and fail. In the browser console, type SR and SyneriseTC; both must exist before the chat is initialized. Place the chat script below the tracking code, or initialize the chat after the tracking code has loaded. See Getting started with the Web SDK.

The container element cannot be found. The console shows a message that starts with Root element with id and the chat does not render. The element with the ID passed in rootElementId must exist when init() runs. Check the ID and make sure the script runs after the element is in the page.

The chat is initialized twice. The console shows a message that starts with Chat is already mounted in container and the second call fails. Call init() once per container. If you re-initialize on purpose, call the unmount() method first.

The chat is initialized but not opened. The chat starts closed. Call open() from your launcher.

The Dynamic Content campaign does not reach the page. Check that the campaign is active, that your profile is in its audience, and that the page matches its filters. Use Testing dynamic content on a production site.

The chat shows "Connection error"

The requests are blocked. Open the browser's developer tools and look at the network requests to the api.synerise.com host. Content blockers, corporate proxies, or a Content Security Policy can block them. Allow api.synerise.com (requests) and web.snrbox.com (the chat files) in your policy.

Authentication fails (HTTP 401 or 403). The tracking code is not loaded, the tracker key does not belong to the workspace where the assistant is configured, or the authentication mode does not match your tenant. By default the chat authenticates with the tracker key and the customer's UUID from the tracking code. Tenants configured for session-based authentication must switch the mode with disableXSRFToken: false instead. See Authentication.

Synerise returned a server error (HTTP 5xx). Click Try Again. If the problem persists, contact Synerise Support with the time of the error and the conversation ID (threadId).

A custom API address is used. If you pass apiUrl, make sure the address is correct and allows requests from your domain.

Answers appear all at once instead of progressively

Streaming is not enabled. Add stream: true to the options passed to the init() function. Without it, the chat waits for the whole answer and shows it in one piece.

"This conversation is no longer available"

The chat tried to resume a conversation that does not exist for the current customer:

  • The conversation expired. Past conversations are available for up to two weeks.
  • The conversation was started under another identity. The customer logged in or out, or cleared cookies, so the UUID changed.
  • The conversation ID belongs to another workspace or was mistyped.

The Start new conversation button starts a fresh conversation. If your website stores conversation IDs, remove the stale one and store IDs together with the customer's UUID. See Returning to earlier conversations.

The assistant does not know which product the customer is viewing

The Open Graph tags are missing or incomplete. Automatic detection needs og:type equal to product or product.item and product:retailer_part_no with the item ID. Pages marked product.group are ignored. See Open Graph tags.

The item ID does not match the feed. The value of product:retailer_part_no must equal the item ID mapped to itemId in the Products section of the assistant configuration.

A single-page application does not update the tags. If the meta tags stay the same when the customer navigates, the chat cannot detect the change. Set the product manually with setPageContext() from your router.

Two methods are mixed. Once you use autoDetectPageContext, pageContext, or setPageContext(), the page_context value placed in additionalContextValues is ignored. Use one method.

Buttons from earlier answers disappeared

This is expected. Buttons and follow-up suggestions belong to the latest answer and are hidden when the customer sends the next message. Links stay.

Thumbs up and thumbs down are not visible

  • Response feedback is disabled in the assistant configuration.
  • The greeting cannot be rated; only answers to the customer's messages can.
  • For earlier answers the toolbar appears on hover; it is permanently visible only under the latest answer.
  • The answer was already rated. A rating is given once and cannot be changed.

The chat cannot be loaded from a tag manager

Tag managers and some Content Security Policies do not allow module scripts (<script type="module">). Use the single-file build https://web.snrbox.com/ai-shop-assistant/sdk.umd.js, which exposes SyneriseAIShopAssistant.init(), as shown in Implementing the AI Assistant on your website.

A custom action does nothing

Custom actions returned by the assistant are handled by your code through the onCustomAction callback of the React and Preact packages. The plain init() function does not expose this callback yet. See Chat actions.

The chat looks different from the examples

Your website's global styles apply inside the chat. Rules for generic elements such as span, button, a, or img also affect the chat. Scope such rules to your own components or add resets for the chat container.

The container has no size. The chat fills its container. Give the container an explicit width and height, or position it with CSS as shown in Position the chat.

The mobile keyboard covers the message input

Size the container relative to the visible part of the screen instead of the full screen height, for example with height: 100dvh or by reacting to window.visualViewport changes, so the layout shrinks when the keyboard opens.

Getting help

For questions about the assistant configuration, events, or the Dynamic Content campaign, contact Synerise Support. For technical questions about the chat component, write to developer@synerise.com. Include the workspace, the assistant ID, the conversation ID (threadId), the browser and device, and any messages from the browser console.

Canonical URL: https://hub.synerise.com/docs/ai-hub/ai-assistant/troubleshooting