TapIn Pokémon

Error codes

Every error code the server can return, its HTTP status and what it means.

REST calls fail with an HTTP status and a JSON body { "code", "message" }. Over the WebSocket the same failure arrives as { "t": "error", "code", "message" } and the socket stays open. The message is written for players and safe to show as a toast; branch on code.

This list is generated from the game server's source. A status of WS means the code is only sent over the WebSocket.

CodeStatusExample message
internalWSSomething went wrong
rate-limitedWSSlow down
bad-request400speciesId must be 1-151 or null / toUserId is required / offerUid is required
battle-only-item400That item can only be used in battle
challenge-not-found400Challenge not found or expired
host-entry400The host can't enter their own tournament
illegal-action400Illegal action
invalid-handle400Invalid community handle
invalid-json400Body must be valid JSON / Body must be a JSON object
invalid-legendary400Only Articuno, Zapdos, Moltres, Mewtwo or Mew
invalid-team400The champion has no team left
invalid-type400Unknown Pokémon type
no-effect400It won't have any effect.
not-a-trainer400That user is not a Pokémon trainer yet
not-dismissable400Only wild encounters can be dismissed
not-entered400You are not entered
not-for-sale400That item is not sold here
own-gym400You are this gym's leader
replace-index-required400Choose a move to forget
self-challenge400You can't challenge yourself
self-trade400You can't trade with yourself
unauthorized401Gigaverse rejected the token
insufficient-funds402You don't have enough money
debug-disabled403Debug encounters are disabled
host-unverifiable403Could not verify that you host this live
not-host403Only the live host can do that / Only the host can do that
not-in-battle403You are not in this battle
not-live-host403Open your live page to start a legendary event
not-owner403You can only offer your own Pokémon / You can only give your own Pokémon / Only the community owner can change the gym
not-receiver403Only the receiver can decline / Only the receiver can accept
not-sender403Only the sender can cancel
battle-not-found404Battle not found
community-not-found404Community not found
not-found404Unknown endpoint
pending-not-found404Decision not found
pokemon-not-found404Requested Pokémon not found / Pokémon not found
tournament-not-found404Tournament not found
trade-not-found404Trade not found
trainer-not-found404That trainer does not exist / Trainer not found
method-not-allowed405Method not allowed
already-started409The tournament has already started
busy409You are already in a battle / The champion is busy in another battle
challenge-pending409You already have a pending challenge
evolution-invalid409This Pokémon can no longer evolve that way
final-running409The final is already running
in-battle409Trades are not possible during a battle / Not possible during a battle
last-party-member409You can't release your last party Pokémon
last-pokemon409You can't trade away your last Pokémon
needs-starter409Choose a starter Pokémon first
no-final409There is no final to start
no-item409You don't have that item
no-stage-request409No stage request is pending
no-usable-pokemon409Your Pokémon need healing first
not-enough-entrants409At least 2 trainers must enter
not-your-turn409No action needed right now
offline409That trainer is offline
registration-closed409Registration is closed / You can only leave during registration
stale-turn409
starter-taken409You already have a starter
tournament-active409A tournament is already running here
tournament-full409The tournament is full
tournament-over409The tournament is over
trade-closed409
payload-too-large413Request body too large
backend-error502Unexpected Gigaverse account payload / Unexpected Gigaverse community payload
backend-unavailable502Gigaverse backend is unavailable
jwks-unavailable503

TapIn Pokémon is an unofficial fan project. Pokémon and all related names and artwork are trademarks and © of Nintendo, Game Freak and Creatures. Legal