TroubleshootingUpdated 12 Aug 2026
Common errors and what they mean
Widget, origin, Shopify, and AI failures — visitor copy stays calm; detail stays in the dashboard.
Visitors never see raw provider or Shopify errors. Use Activity and the AI / Integrations cards.
Widget does not appear#
- Confirm the script is on the published page (view source, search
widget.js). - Confirm the page host is in Setup → allowed domains (
wwwvs apex). - Wait 60 seconds and refresh Setup for Connected.
- Check the browser console for a blocked script (CSP). Add your Formo origin to
script-srcif the store sets a strict policy.
Widget appears, then does nothing#
| Symptom | Cause | Fix |
|---|---|---|
| Contact form instead of chat | Site paused, or monthly cap hit | Turn Live on, or wait until the 1st (UTC) |
| Dry-run notice on every reply | Dry Run is on | Expected until you switch it off in Behaviour |
| “Chat is almost ready” | No AI key saved | Dashboard → AI Provider |
| Origin not allowed (403 on config) | Script copied onto another domain | Add that host, or remove the tag |
Shopify#
| Symptom | Fix |
|---|---|
| Token test fails | Domain must be store.myshopify.com; token must include read_orders and read_customers; reinstall the custom app |
| Order not found | Confirm the order exists and the number matches Shopify’s name (#1042) |
| Invented tracking | Should not happen — if Activity shows no tool evidence, keep Dry Run on and check the model supports tools |
AI provider#
| Symptom | Fix |
|---|---|
| Key rejected | Re-copy the key; enable billing |
| Model not found | Use the catalog default or a current custom id |
| Tools warning | Pick a tool-capable model so order lookup works |
| Timeout | Retry; switch to the fast model for the verifier |
Rate limits#
Formo limits 20 messages/minute per visitor, 300/minute per site, and 40 new conversations/hour per visitor. Visitors see a short wait message, not an error code.