For Developers · Discord Bot
Bot Troubleshooting
What each error the bot shows actually means, and the fastest fix.
Linking
This server is not linked to a Panda service yetsetupoptionalNobody has run /login here, or the link was removed. An admin runs /login account or /login apikey.
Captcha verification failedloginoptionalThe dashboard login is captcha-protected, and a bot cannot solve it. Use /login apikey instead — it links the server with your service API key and is not affected.
Invalid credentialsloginoptionalWrong email/username or password, or the account signs in with Google only and has no password set. Google-only accounts must use /login apikey.
MFA session expired or invalidloginoptionalThe 2FA prompt was left open too long. Run /login account again.
No services foundloginoptionalThe account owns no service yet. Create one in the dashboard first.
The stored API key was rejectedruntimeoptionalThe service's API key was regenerated, or the service was disabled. Re-run /login to store the current key.
IP not whitelisted for this API keyruntimeoptionalThe service has an IP allowlist and the bot's host is not on it. Add the bot host's IP under the service's allowed IPs, or clear the allowlist.
This Discord server is already bound to service …linkingoptionalThe dashboard binds one Discord server to one service. The bot still links locally and works normally — only the dashboard's own binding field is left pointing at the first service.
Keys and members
Key not foundredeemoptionalThe key belongs to a different service, or it was mistyped. Check with /lookup key:<value> — that searches both activated and unredeemed keys on the selected service.
Already claimedredeemoptionalThe key is bound to another Discord account here. Issue a new one with /whitelist, or free it with /unwhitelist on the account that holds it.
No valid key is linked to your Discord accountmemberoptionalThe member never pressed Redeem, or their key expired or was revoked. /lookup user:@them shows what they actually hold.
Reset failed / not eligiblehwidoptionalThe key has no device bound yet — there is nothing to reset — or the service's own reset cooldown is still running. That cooldown is configured per service in the dashboard and is separate from the server-side cooldown in /settings hwid.
Cooldown activehwidoptionalThe member's server-side cooldown. Use /force-resethwid user:@them to bypass it without consuming their next reset.
Cannot extend lifetime keykeysoptionalLifetime keys have no expiry to extend, so /compensate skips them by design.
Roles
bot role is below the buyer rolerolesoptionalDiscord only lets a bot manage roles ranked beneath its own. In Server Settings → Roles, drag the bot's role above the buyer role.
Could not grant the buyer rolerolesoptionalUsually the ranking above, or the bot is missing Manage Roles. Re-invite with the default permissions if it was stripped.
buyer role no longer existsrolesoptionalThe role was deleted. Set a new one with /settings roles buyer:@Role.
Managed roles cannot be granted
Panels and commands
Panel unavailablepaneloptionalThe panel row was deleted — usually because its service was unlinked. Post a fresh one with /setpanel.
Cannot post therepaneloptionalThe bot lacks View Channel or Send Messages in the target channel.
Commands do not appeardiscordoptionalNewly published global commands can take up to an hour to propagate. Fully closing and reopening the Discord client usually surfaces them sooner.
You need Manage Server…permissionsoptionalYou are neither an admin nor holding the manager role. Ask an admin for /settings roles manager:@YourRole.
Rate limits
The API allows 30 requests per minute per service. The bot stays under that with its own queue and retries when the limit is hit, so bursts of panel presses are safe. What you will notice:
/mass-whitelistprocesses roughly twelve members a minute and shows an ETA before starting.- Runs longer than fifteen minutes DM you the final summary, because Discord's interaction window closes before the run does.
- Each linked service has its own queue, so a busy server never slows another one down.
Still stuck
/status shows whether the link and API key are healthy, /ping shows whether the backend is reachable, and /logs shows what the bot last did in this server, including failures.