Każdy, kto wypuścił bota na Discordzie, to widział: zwykły wtorek, a potem nagle increased api errors wszędzie i połowa komend nie działa. Google Trends zarejestrował tę frazę jako „breakout” w połowie 2026 roku; zdarza się to na tyle często, że użytkownicy wpisują ją wprost w wyszukiwarkę. Oto jak to przetrwać i czego Noxyr Server API nauczył się z tych lekcji.
Trzy najczęstsze tryby awarii API Discorda
- Globalna awaria / częściowa awaria: widoczna na discordstatus.com. Objawy: dowolne żądanie może się nie udać, gateway może się rozłączyć, opóźnienia skaczą wszędzie.
- 429 Too Many Requests: przekroczyłeś limit kubełka. Discord zwraca nagłówek
Retry-After, który mówi dokładnie, ile czekać. - Gateway invalid session: sesja WebSocket jest nieaktualna. Połącz się ponownie z tokenem wznowienia; jeśli to nie działa, wykonaj świeże identify.
Buduj na awarię, nie na słoneczną pogodę
- Respektuj Retry-After. Nie ponawiaj według własnego zegara. Czekaj dokładnie tyle, ile podaje Discord, i dopiero potem ponów raz. Boty, które przepychają się przez 429, dostają bana.
- Wykładniczy backoff z jitterem. Przy błędach 5xx czekaj 1 s, 2 s, 4 s, 8 s, plus niewielkie losowe przesunięcie, żeby flota restartów nie zrobiła stampede.
- Wyłączaj wywołania niekrytyczne (circuit breaker). Jeśli bot wysyła cotygodniowe podsumowanie, a API Discorda jest osłabione, pomiń ten przebieg zamiast dokładać obciążenia. Podsumowanie może poczekać; awaria nie.
- Cache'uj wszystko, co nie wymaga czasu rzeczywistego. Nazwy gildii, listy kanałów, ID ról: trzymaj je lokalnie. Podczas awarii dane z cache pozwalają dalej obsługiwać.
- Pokazuj status. Jeśli komendy bota nie działają, bo Discord leży, powiedz o tym użytkownikom. Jedno zdanie w stylu „Discord ma obecnie problemy” jest lepsze niż ciche timeouty.
Jak Noxyr Server API stosuje te lekcje
Noxyr Server API to nie API Discorda, czyta własną bazę danych, ale te same zasady obowiązują i ukształtowały jego projekt:
- Przewidywalne błędy: każda awaria to JSON ze stabilnym kodem
error. Żadnego HTML-a, żadnych zmiennych formatów. - Nagłówki limitów: ustandaryzowane nagłówki
RateLimit-*, żeby klienci zwalniali, zanim trafią w 429. - Łagodna degradacja: endpoint
/api/v1/serverprzechodzi na dane gildii z cache, gdy pobranie z Discorda się nie uda. - Brak kaskadowych awarii: każdy endpoint zawodzi niezależnie. Gdy Discord leży, Twój endpoint analityki ticketów nadal działa, bo czyta z Mongo, a nie z Discorda.
- Natychmiastowy wyłącznik awaryjny: wyłączenie klucza lub zakresu działa już przy następnym żądaniu, bez restartu.
Plan działania, gdy Discord się sypie
- 1. Najpierw sprawdź discordstatus.com: czy to tylko u Ciebie?
- 2. Zajrzyj do własnych logów błędów: 429, 5xx, rozłączenia gatewaya.
- 3. Jeśli to Discord: wstrzymaj niekrytyczne zapisy, respektuj Retry-After i czekaj.
- 4. Jeśli to Ty: sprawdź ostatnie wdrożenia, unieważnienia cache i nowe funkcje.
- 5. Informuj. Krótka, uczciwa notatka na kanale wsparcia zapobiega stu zduplikowanym zgłoszeniom.
Więcej o warstwie API: Noxyr Server API, API Discorda a API Noxyr, zasady projektowania API dla botów.