Skip to content

Troubleshooting ​

Start with:

bash
npx @knowtific/helppuff doctor

It checks the config, secrets, Cloudflare access, the Worker, the database, the knowledge base and the widget, and prints a fix for each failing check. helppuff status shows what is deployed and today's usage. For live Cloudflare request logs, run helppuff logs in the same project folder and repeat the failing request. It works with the existing Wrangler login or the project's CLOUDFLARE_API_TOKEN in .env. See Logs.

The widget does not appear on my site ​

  • Is the script on the page? View the page source and look for loader.js. Dashboard → Home → Check my site looks for you.
  • Is the page's origin allowed? origins in helppuff.json must include the exact scheme and host, including www. if you use it. Add it and deploy.
  • Does the site have a Content Security Policy? Allow the Worker in script-src and connect-src (and img-src, if the assistant has an avatar). Add ?hpdebug=1 to the page URL to see the widget's own log in the browser console.
  • Is it hidden on this page? Check widget.launcher.hideOnPaths.

The widget never shows a broken state: if anything is wrong it simply does not appear, so the browser console (with ?hpdebug=1) is where to look.

Visitors see "Chat is unavailable right now" ​

The daily message cap (security.limits.messagesPerSitePerDay) or the daily AI budget is used up. Both reset at 00:00 UTC. Visitors still get your contact details and the callback form. Raise the limits if the traffic is real; see Costs and limits.

The assistant says it is not sure about something on my site ​

  • Dashboard → Knowledge → Test a question shows what it would answer from. No passage? The page may not be learned: check its status under Website pages.
  • A page shows Blocked (robots.txt), Skipped (no readable text: often a page drawn by JavaScript; it is rendered automatically when possible) or Failed: the reason is on the row.
  • Add the answer yourself under Your own answers, or upload a file.
  • If good passages are found but dropped, the reranker may be strict for that question; see retrieval.minScore in Workers AI.

A file failed to learn ​

The reason is next to it. "No readable text" usually means a scanned PDF (pictures of text); upload a text version. "The upload went missing" means it was not read within a few minutes; upload it again.

Deploy errors ​

Error codeMeaningFix
settings_changedSettings were changed in the dashboard since this folder pulled themhelppuff config pull, check the diff, deploy
prompt_behind, prompt_divergedThe prompt was changed in the dashboardhelppuff prompt pull (your unpublished edits are kept in prompt.mine.md), then deploy
missing_secretA key the config needs is not in .envhelppuff secret set <NAME>
downgradeThe Worker runs a newer release than this CLInpx @knowtific/helppuff@latest …, or --allow-downgrade to roll back on purpose
cli_outdatedupgrade was run with an older CLInpx @knowtific/helppuff@latest upgrade
project_too_newhelppuff.json was written by a newer CLIuse the newer CLI (@latest)
no_admin_key, admin_unauthorizedADMIN_API_KEY is missing or does not match the Worker'shelppuff deploy sets it again
exit code 3Cloudflare refused the credentialsnpx wrangler login, or check the token's permissions (Configuration)
exit code 4A Cloudflare quota or limitthe message says which; often a free-plan daily limit

Every error in --json mode has a stable code and a hint with the command to run next.

I cannot sign in to the dashboard ​

bash
npx @knowtific/helppuff dashboard        # a one-time sign-in link (15 minutes)
helppuff users reset you@example.com     # a new password

Before anyone has an account, helppuff dashboard prints the setup link again.

Replies are slow ​

helppuff ask "<question>" --timing prints each step's time. On Workers AI the model and the reranker take most of it. Turning the reranker off (Settings → Advanced → "Double-check answers") saves about half a second, at some cost in accuracy.

Webhooks are not arriving ​

Settings → Webhooks → Recent deliveries shows each delivery's status and error; Send test sends one now. Endpoints must be https:// and answer within 8 seconds with a 2xx. See Webhooks.

Live chat: nobody gets notified, or visitors always get the callback form ​

Someone must be available: a dashboard tab open with the Available switch on (bottom of the menu), or Telegram linked. helppuff live status and helppuff doctor say which is missing. No sound: click anywhere in the dashboard once (browsers need a click before playing sound), then Settings → Notifications → Test sound. No notification: allow them for the dashboard's site in the browser. See Live chat.

Still stuck ​

Open an issue with the output of helppuff doctor --json (it contains no secrets) and what you expected to happen.

MIT licensed. Runs in your own Cloudflare account.