Vidensdatabase

Din bot er sat på pause – afviste forespørgsler og rate limits

Har du fået en e-mail om, at din Discord bot er sat på pause, eller er din bot blevet langsom og får fejlen "rate limited"? Her forklarer vi, hvad det betyder, hvorfor vi har en automatisk pause, og hvordan du får botten i gang igen.

Hvorfor bliver en bot sat på pause?

Discord blokerer en hel IP-adresse i cirka en time, hvis der kommer for mange afviste forespørgsler fra den (mere end 10.000 inden for 10 minutter). Din bot deler server og IP-adresse med andre kunders bots, så en bot, der sender mange afviste forespørgsler, kan ramme alle.

Derfor sætter vi automatisk en bot på pause, hvis den sender et meget stort antal afviste forespørgsler på kort tid. Du får en e-mail, når det sker. Dine filer bliver ikke slettet, og din bot kan startes igen, når årsagen er rettet.

Det tæller som afviste forespørgsler

  • Forkert eller nulstillet token (svar 401), især hvis botten forsøger at logge ind igen og igen.
  • Manglende rettigheder (svar 403 / "Missing Access"), fx hvis botten forsøger at skrive i en kanal, den ikke kan se.
  • For mange forespørgsler (svar 429, rate limit), fx en løkke, der kalder Discord uden pause.

Sådan får du botten i gang igen

  1. Find årsagen i Console og Log Files. Se artiklen Din bot stopper efter start – fejl og løsninger.
  2. Ret fejlen, så botten ikke bliver ved med at sende de samme afviste forespørgsler.
  3. Opret en supportsag, og skriv, hvad du har rettet. Så genaktiverer vi tjenesten.

Sådan undgår du problemet

  • Tjek tokenet i app/.env, før du starter, og nulstil det, hvis du er i tvivl.
  • Tjek rettigheder, før botten skriver i en kanal. Fang fejlen, og stop med at prøve igen og igen, hvis du får "Missing Access".
  • Undgå genstarts-løkker. Hver gang botten starter, logger den ind hos Discord. Discord nulstiller en bots token efter 1000 logins på 24 timer, så en bot, der går ned og starter om og om igen, kan miste sit token.
  • Respektér rate limits. Discord tillader cirka 50 forespørgsler i sekundet pr. bot og har ekstra grænser pr. funktion. De store biblioteker (discord.js, discord.py m.fl.) venter automatisk, når Discord beder om det. Undgå at omgå det med egne løkker, og undgå at hente alle beskeder, medlemmer eller roller igen og igen. Gem i stedet det, du allerede har hentet.
  • Brug hændelser i stedet for gentagne spørgsmål. Lyt efter ændringer, i stedet for at spørge Discord hvert sekund, om noget er ændret.
  • Udfør ikke store opgaver på én gang, fx at give roller til tusindvis af medlemmer i en løkke. Fordel dem over tid.

Spørgsmål

Opret en supportsag, så hjælper vi dig. Skriv, hvad der står i slutningen af din Console, men send aldrig dit bot-token.

Var artiklen hjælpsom?