Skip to main content

Widget troubleshooting

Start by opening your browser's developer console — right-click the page, Inspect, then the Console tab. Nearly every problem announces itself there.

The widget does not appear at all

Check the snippet is on the page

View the page source and search for ChatbotConfig.

Not there? The snippet was not saved where you thought. Go back to your platform guide and confirm you edited the published theme, published the site, and saved the right field.

There, but nothing renders? Read on.

Console: SiteMesh Widget: ChatbotConfig missing chatbotId or apiKey

Exactly what it says — one of the required fields is empty or missing.

Common causes:

  • A placeholder was never replaced: chatbotId: "YOUR_CHATBOT_ID"
  • An environment variable did not resolve at build time and produced undefined
  • A quote or comma was lost while pasting

Copy the snippet fresh from the dashboard rather than repairing it by hand.

You are still seeing a cached page

Hard-refresh: Ctrl+Shift+R, or Cmd+Shift+R on a Mac.

If your platform has its own cache — a WordPress caching plugin, a CDN, Cloudflare — clear that too. A cached page without the snippet looks identical to a failed install.

You are opening the file directly

A page opened as file:///... cannot make the network requests the widget needs. Serve it over HTTP. See Plain HTML.

The widget appears but will not answer

Console shows 403

The request reached SiteMesh and was refused. Two possible reasons:

Domain not authorized — the site's domain is not in this key's allowed domains.

Check the exact hostname in your address bar and compare it letter for letter:

  • example.com and www.example.com are different. List both, or use *.example.com.
  • A staging address — mysite.webflow.io, mystore.myshopify.com, localhost — is different again.

Origin header missing — the request arrived without an origin the server can check. This usually means the request did not come from a normal page load.

Console shows 401

Invalid or revoked API key — the key does not exist or has been revoked. Generate a new one and update your snippet.

Missing widget key — the apiKey field is empty. See the missing-config error above.

Console shows 429

You have hit the rate limit. Widget chat is limited per minute per visitor. In normal use this is not reachable; if you are seeing it during testing, wait a minute.

Rate limits

The bot replies "I don't have information about that"

The widget is working correctly — this is a content problem, not an installation one. Your chatbot did not find anything relevant to answer from.

Improving answers

Two chat bubbles

The widget loaded twice. The snippet is in two places.

Common causes:

  • Added site-wide and at page level (Webflow, Wix)
  • Added to both the header and footer injection fields
  • In a React app: a component rendered in more than one place, or React StrictMode running the effect twice in development

Remove the duplicate. For React, see the deduplication guard.

The widget looks wrong

The widget is isolated from your site's CSS, so a genuine style collision is not possible — your stylesheets cannot reach into it.

If it is genuinely rendering incorrectly:

  1. Check your theme colours in both light and dark mode. A dark bubble colour can disappear against a dark panel.
  2. Check your accent colour has enough contrast for white button text.
  3. Test in a different browser to rule out an extension interfering.

Content Security Policy errors

If the console shows a CSP violation mentioning the widget script, your site's Content-Security-Policy header is blocking it. Allow the widget's script source and the API origin in your policy.

It works on desktop, not mobile

  • Test on a real device, not just a narrow browser window
  • Clear the mobile browser's cache — mobile browsers cache harder
  • Confirm the mobile site is the same domain; some setups serve an m. subdomain that is not in your allowed list

It worked yesterday and stopped

Likely causeCheck
The key was revokedLook at the key list in the dashboard
A theme or platform update overwrote the snippetView source and search for ChatbotConfig
Your domain changedCompare the address bar against your allowed domains
A CDN is serving a stale pagePurge the cache

Still stuck

Collect these before asking for help — they cut the diagnosis time dramatically:

  1. The exact URL where the widget should appear
  2. The exact console error text, copied not paraphrased
  3. Whether ChatbotConfig appears in the page source
  4. Your key's allowed domains list
  5. Which platform the site is built on