Documentation

← Panda Auth

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 yetsetupoptional

Nobody has run /login here, or the link was removed. An admin runs /login account or /login apikey.

Captcha verification failedloginoptional

The 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 credentialsloginoptional

Wrong 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 invalidloginoptional

The 2FA prompt was left open too long. Run /login account again.

No services foundloginoptional

The account owns no service yet. Create one in the dashboard first.

The stored API key was rejectedruntimeoptional

The 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 keyruntimeoptional

The 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 …linkingoptional

The 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 foundredeemoptional

The 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 claimedredeemoptional

The 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 accountmemberoptional

The member never pressed Redeem, or their key expired or was revoked. /lookup user:@them shows what they actually hold.

Reset failed / not eligiblehwidoptional

The 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 activehwidoptional

The member's server-side cooldown. Use /force-resethwid user:@them to bypass it without consuming their next reset.

Cannot extend lifetime keykeysoptional

Lifetime keys have no expiry to extend, so /compensate skips them by design.

Roles

bot role is below the buyer rolerolesoptional

Discord 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 rolerolesoptional

Usually the ranking above, or the bot is missing Manage Roles. Re-invite with the default permissions if it was stripped.

buyer role no longer existsrolesoptional

The role was deleted. Set a new one with /settings roles buyer:@Role.

Managed roles cannot be granted

Roles created by another bot or by a Discord integration (including booster roles) can never be assigned by a third-party bot. Use a plain role for buyers.

Panels and commands

Panel unavailablepaneloptional

The panel row was deleted — usually because its service was unlinked. Post a fresh one with /setpanel.

Cannot post therepaneloptional

The bot lacks View Channel or Send Messages in the target channel.

Commands do not appeardiscordoptional

Newly 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…permissionsoptional

You 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-whitelist processes 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.