Troubleshooting
Symptom first — what the wizard and the scaffolded app do when something is wrong, what causes each one, and the page that owns the fix.
Two things break in different ways here: the wizard, which runs once on your machine, and the app it writes, which runs on a host. The symptoms below are grouped that way. Every one of them links to the page that owns the detail.
Check /healthz first
The app's server answers /healthz with its own view of the auth gate, uncached:
{ "ok": true, "auth": "on" }auth | What it means | When you'd want it |
|---|---|---|
on | VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY are both set. Every request is checked against a Supabase session. | The app has its own sign-in. |
off | Neither is set. There's no sign-in, and requests are fenced against the deployment's own workspace instead. | One bot, one operator, no accounts. |
misconfigured | Exactly one of the two is set. The gate fails closed and refuses everything. | Never — it's the state to fix. |
Read that before any other symptom on this page. The server also prints the mode on startup.
A build/runtime mismatch never announces itself. VITE_* values are compiled into the browser
bundle when you build; everything else is read by the server when it starts. Nothing fails at the
moment the two disagree — it fails later, at the gate, and reads as an auth bug.
The wizard
The app
Not on this page
Limits that are not bugs
Behaviour that looks broken, is not, and will not change — because the Chatfuel API cannot answer the question underneath it.
Getting help
Where to ask, what to include, and what to redact before you paste it anywhere.
Errors
Every error code the stack can produce, code by code, with what causes it.
This site as text
An index at /docs/llms.txt, everything in one file at /docs/llms-full.txt, a Markdown twin at every documentation address, and /SKILL.md — with no MCP server behind any of it.
Limits that are not bugs
Behaviour that looks broken, is not, and will not be fixed — because the Chatfuel API cannot answer the question underneath it.