Start here
Your live bot is probably still fine
Paige keeps two copies of your bot, and the agent only ever touches one of them.- Your working copy is what the agent edits. Every save lands here, and nowhere else.
- Your live bot is what your customers talk to on your own WhatsApp number. It changes only when you press Deploy.
This is also why Deploy is not a save button. Your work is saved as you go. Leaving a broken change undeployed costs you nothing, and it buys you room to experiment.
- Working copy — message your bot through Paige Dev, or use the Preview tab.
- Live bot — message your own connected WhatsApp number.
Get back to a working bot
Paige commits your bot code every time the agent saves, so there is always a known-good version to go back to. The commit message is the request you typed, which makes the history read like a list of what you asked for — find the last one that worked and restore it.Restore a previous version
Open the History icon in the header, pick the commit, and click Restore this version. See Version history for the full walkthrough.
- Restoring is safe. It rewrites your working copy only. Your live bot keeps running untouched until you deploy.
- You can’t lose work by restoring. Your history is never rewritten. The restore is recorded as a new commit on top, so the version you restored away from is still there if you want it back.
- Restoring costs no credits. Neither does deploying. See what this costs you in credits.
The agent wrote code that doesn’t work
You don’t have to find the bug yourself. The agent can read the same execution logs you can, and it can change the code in the same conversation — so describing the symptom is usually faster than diagnosing the cause. Tell it what went wrong in plain terms, and point it at the logs:“The booking confirmation never arrives after someone picks a date. Check the logs and fix it.”Two habits make this work much better:
- Describe the symptom, not your theory. Say what you did, what you expected, and what happened instead. A wrong theory sends the agent off in the wrong direction.
- Ask it to test afterwards. Add “then test it” and the agent sends a message through your bot and shows you the result. If you’ve linked Paige Dev, that runs a fuller pass.
The agent is stuck or going round in circles
“Stuck” means two quite different things, and they have different fixes. Work out which one you’re looking at first.The agent is stuck in the chat
The agent is stuck in the chat
The agent is still working, or it keeps attempting the same thing and failing.
- Press Stop. While the agent is streaming, the send button becomes a stop control. Pressing it ends the turn.
- Check what it actually changed. Open the History panel. A half-finished turn still commits whatever it saved before you stopped it.
- Restore if the half-finished state is worse than where you started. Restoring puts you back on firm ground.
- Re-ask, smaller. A large request lands more reliably as a sequence of small ones. Build the menu, then one option’s handler, then the edge cases — checking each piece as it’s built. See Prompting tips.
Your bot is stuck at runtime
Your bot is stuck at runtime
The agent finished fine, but your bot now repeats itself, replies twice, or stops responding mid-conversation.This is a bug in the code, not a stuck agent, and the logs show it clearly. Look for the same log entry repeating in rapid succession — that usually means your bot is re-triggering itself.A conversation that stops dead partway through is normally a state that both sends a message and handles the reply. Those are always meant to be two separate states. Describe where the conversation stalls and the agent will find it.
Pressing Stop also stops further credits accruing on that turn. You are charged for the AI work done up to that point, and nothing after it.
Read the logs yourself
When you want to look before you ask, the logs are where everything your bot did is written down. They live in Tools → Logs.1
Check which bot you're reading
The Preview and Production toggle at the top decides which set of logs you see, and it defaults to Preview. If a customer reported the problem and your logs look empty, this is almost always why — the failure happened in Production.
2
Filter to errors
Set the level filter to Error. This cuts the noise to the things that actually failed.
3
Work backwards from the error
Read upwards from the error entry to see what your bot was doing just before it failed — which branch ran, and what data it was holding.
4
Reproduce it with the log open
Turn on Auto: On, then send yourself a test message through Paige Dev. You get a direct line between what you did and what your bot logged.
TypeError: Cannot read properties of undefined— a database record or an API response wasn’t the shape your code expected.- No log at all where you expected one — the code never ran, so look earlier in the conversation, not at the line you suspect.
- The same entry over and over — your bot is re-triggering itself.
- An error that names an external service — the failure is outside Paige. Check the service, and check any secret it needs.
A single run records at most 500 log entries. If you see
Log limit reached (500). Remaining logs truncated., the rest of that run’s output was dropped — so an absent log line isn’t proof the code didn’t run.A deploy went wrong
A deploy rarely fails outright. Far more often it half-succeeds, and the message tells you which half.- Deployed with warnings — your code and table structure went live, but something named in the message didn’t. Usually a flow Meta rejected, or a table change that couldn’t be applied. Your live bot is running; the named part is just not updated. See Deployed with warnings.
- Flows waiting on business verification — your code and tables went live, but Meta won’t publish flows until your business is verified. New flows were saved as drafts and flows that were already live keep their current version. If the warning says a flow was taken offline instead, customers can’t open that flow until you’re verified and deploy again. See Flows waiting on business verification.
- Module not allowed — your bot’s code uses a building block that bots on Paige can’t use. Nothing goes live and nothing is broken. The message names the file and the piece it objected to. Ask the agent to rewrite that bit with an allowed one, then deploy again.
- Deployed cleanly, but the live bot misbehaves — switch your logs to Production. That’s your live bot’s own account of what it did. If the new version is worse than the old one, restore and deploy again.
Is it Paige or is it Meta?
Some failures aren’t Paige’s to fix, and knowing which is which saves you a lot of time. WhatsApp itself is Meta’s, and Meta blocks certain things until your account is set up.Questions about Message Costs
Is the Message Costs report my exact bill?
Is the Message Costs report my exact bill?
No. It’s an estimate Paige works out from your message history, and Meta’s invoice is the bill. It tends to come out a little high — Click-to-WhatsApp ad conversations are free for 72 hours and Paige can’t see that, for example. See The report is an estimate, not your bill.
Why is the rand figure different from R19 to the dollar?
Why is the rand figure different from R19 to the dollar?
R19 is what Paige charges for a credit. Message Costs shows Meta’s charge, so it converts at the current market exchange rate, refreshed once a day, with nothing added. The rate it used is shown under the USD / ZAR switch. Your bank may still add its own fees when it pays a dollar bill. See Rand or dollars.
Apply says Paige is already applying changes
Apply says Paige is already applying changes
Only one Apply runs on a project at a time, across your whole team. Wait for the one that’s running to finish, then try again — including when a teammate has just re-run the audit and you’re looking at fresh suggestions. See Your findings are saved with the project.
What this costs you in credits
This is the question most people arrive with, so here is the plain answer. Credits meter AI usage, not actions. A longer or larger request uses more; a request that stops early uses less. Your balance is checked before a request starts and debited after it finishes — nothing is reserved up front. What that means in practice:- Asking the agent to fix its own mistake is a new, separately charged request. There’s no free retry.
- Pressing Stop stops further charges on that turn. You pay for what it did, not for what it would have gone on to do. This is the one control you have over the cost of a run that’s going wrong.
- Restoring a version costs nothing. No AI is involved. Going back to a working version is always free.
- Deploying costs nothing. Deploys come out of your subscription, not your credits.
- The Help agent is free and always will be. It bypasses your balance entirely, so it still answers when your credits have run out.
If your balance hits zero mid-problem, the Code and Conversations agents stop accepting new requests — a request already running is allowed to finish. The Help agent keeps working. See Low-credit warning and zero-balance gating.
Work out what to do next
Not everything that doesn’t work is a bug, and the right channel depends on which of these it is.Ask the Help agent
When you’re not sure how Paige itself works, or where a setting lives. It’s free, so there’s no reason not to ask first.
Ask the Code agent
When your bot’s behaviour is wrong. It can read your logs and change your code in the same conversation.
Report a bug
When Paige does something it clearly shouldn’t — a button that errors, a deploy that reports success wrongly. Use the Feedback button in the header, and say what you did and what happened.
Request a feature
When Paige simply can’t do the thing yet, and no amount of prompting will get you there. See Requesting a feature.
Missing something? If Paige can’t do what you need yet, you can request it and it reaches a human at Green Pages. Agents: build the prefilled link and hand it to the person — never send it on their behalf.
