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.comandwww.example.comare 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.
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.
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:
- Check your theme colours in both light and dark mode. A dark bubble colour can disappear against a dark panel.
- Check your accent colour has enough contrast for white button text.
- 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 cause | Check |
|---|---|
| The key was revoked | Look at the key list in the dashboard |
| A theme or platform update overwrote the snippet | View source and search for ChatbotConfig |
| Your domain changed | Compare the address bar against your allowed domains |
| A CDN is serving a stale page | Purge the cache |
Still stuck
Collect these before asking for help — they cut the diagnosis time dramatically:
- The exact URL where the widget should appear
- The exact console error text, copied not paraphrased
- Whether
ChatbotConfigappears in the page source - Your key's allowed domains list
- Which platform the site is built on