Skip to content

Find the failing step before changing the setup.

A missing launcher, a failed response, and an inaccurate answer are different problems. Start with the published page and work through the connection to the knowledge.

First-party product guidance. How we maintain these guides · Report a correction

Confirm the page is loading the intended snippet.

Open the public URL where visitors should see Sairo. Check that the deployed page includes one copy of the generated installation snippet and that its public site key belongs to this website.

A CMS editor may suppress custom code or show an unpublished version. Check the platform’s published-site behavior, applicable page scope, and caches before editing the assistant configuration.

Compare with the snippet generated in your workspace
<script src="https://sairo.app/widget.js" data-site="YOUR_PUBLIC_SITE_KEY" async></script>

Check whether the script and configuration load.

If you are comfortable using browser developer tools, inspect the request for widget.js and the widget configuration. Record the status and the page URL. If the script is absent, inspect the insertion point; if it is blocked, inspect the browser’s explanation.

A wrong public key, an inactive workspace, or an unavailable service can prevent a usable configuration. Ask the workspace administrator to verify the site record. Never paste an OpenRouter or other private provider key into a website snippet.

Match the symptom to the next check
SymptomCheck next
No script requestPublished code, CMS page scope, caching, and consent conditions.
Script blocked by the browserThe exact security-policy or extension message.
Configuration unavailableThe public site key, workspace status, and service health.
Launcher appears but replies failThe chat request, allowed origin, usage allowance, and provider connection.
Replies work but contain the wrong informationSite identity, sources, confirmed facts, and saved answers.

Read security-policy errors precisely.

Content Security Policy can control both script loading and network connections. Sairo’s script and chat requests use the sairo.app origin, while live chat uses the secure wss://sairo.app connection. Add required sources to the relevant existing directives only after your site maintainer reviews the complete policy.

The widget also creates styles inside its Shadow DOM. A strict policy can block those styles independently of the script. Record any style-policy violation and review compatibility; permitting the script alone is not a complete CSP solution.

Useful diagnostic detail

Share the blocked request origin and directive name, such as script-src, connect-src, or style-src. Preserve the rest of your policy; disabling it entirely is not a reliable installation fix.

Check the host from which chat is requested.

Sairo checks the browser origin against the site’s allowed origins when present. A staging host, an alternate www address, or a new domain may not match the origin configured for the production website.

Use the approved site URL and have an authorised administrator review the configuration after a domain change. Do not work around an origin rejection by copying another customer’s key.

Treat answer problems as a knowledge review.

If the widget is working, check which pages were indexed and whether the right content is readable. Verification, robots.txt, exclusions, an unfinished crawl, and outdated saved answers can all affect what is available.

Record one failing question and the page that should answer it. This is more useful than changing multiple settings at once. Retest after the relevant source has been corrected and refreshed.

Send a report the team can reproduce.

Include the page URL, browser, approximate time, what you expected, and the exact visible error. Say whether the problem occurs on the published site, after navigation, or only at a particular screen width.

A screenshot and the failing question are often useful. Leave passwords, API keys, recovery links, and private customer details out of the report. Use the support topic on the contact form to send the relevant information.

See what your website can answer.

Try a sample, review the result, and decide what comes next.