Bot Discord przechodzi w offline z jednego z kilku przewidywalnych powodów: zresetowany token, wyłączona uprzywilejowana intencja, wygasłe okno głosowania przy bocie hostowanym albo usunięcie bota z serwera, od którego zależy. Gateway Discorda mówi, który to jest, kodem zamknięcia; kody 4004 oraz 4013/4014 widzisz najczęściej i każdy ma konkretną, mechaniczną naprawę, a nie radę „zrestartuj i miej nadzieję”.
Zacznij tutaj: najbardziej prawdopodobna przyczyna najpierw
Od najczęściej występującej:
- Token został zresetowany. Ktoś nacisnął Reset Token w Developer Portal, celowo albo przez pomyłkę, i stary token, którego używał bot, przestał działać.
- Uprzywilejowana intencja została wyłączona. Server Members Intent albo Message Content Intent zostały wyłączone już po konfiguracji bota.
- Okno głosowania lub subskrypcji wygasło. Przy bocie hostowanym, jak Custom Bot w Noxyr, czas działania jest powiązany z głosem na Top.gg, a okno wraz z okresem ochronnym się skończyło.
- Bot został usunięty z serwera albo bot, od którego zależy, został usunięty. Custom Bot konkretnie zależy od obecności Noxyr; wyrzucenie Noxyr zatrzymuje custom bota na tym serwerze.
- Prawdziwa awaria. Sam Discord ma gorszy dzień. Zdarza się rzadko, ale zanim uznasz, że problem leży w konfiguracji, sprawdź discordstatus.com.
Co naprawdę oznaczają kody zamknięcia gatewaya
| Kod | Znaczenie | Typowa przyczyna |
|---|---|---|
| 4004 | Uwierzytelnianie nieudane | Token jest błędny albo został zresetowany w Developer Portal |
| 4013 | Nieprawidłowa intencja (intencje) | Kod bota zażądał intencji, która nie istnieje, albo kombinacji, którą Discord odrzuca |
| 4014 | Niedozwolona intencja (intencje) | Bot zażądał uprzywilejowanej intencji (Server Members albo Message Content), która nie jest włączona dla aplikacji |
W praktyce 4013 i 4014 pojawiają się u większości botów z tej samej przyczyny: uprzywilejowana intencja, której potrzebuje kod, jest wyłączona w portalu. Discord.js i podobne biblioteki czasem zgłaszają to w logach jako błąd „disallowed intents”, a nie jako surowy kod numeryczny, ale to ten sam problem. Nasz przewodnik po uprzywilejowanych intencjach gatewaya dokładniej omawia, co kontroluje każda intencja i co się psuje bez niej.
Naprawa każdego przypadku w Noxyr Custom Bot
Gateway 4004 albo „Discord odrzucił ten token”
Token, którym bot logował się ostatnio, już nie istnieje. Dzieje się tak, gdy token zostanie zresetowany w Developer Portal, celowo (rotacja dla bezpieczeństwa) albo przez pomyłkę (naciśnięcie Reset Token podczas przeglądania karty Bot).
- Otwórz Discord Developer Portal, wybierz aplikację i przejdź do karty Bot.
- Naciśnij ponownie Reset Token; to wygeneruje nowy. Skopiuj go od razu, bo Discord pokazuje go tylko raz.
- Otwórz stronę Custom Bot w panelu Noxyr i wklej nowy token.
- Włącz bota ponownie. Węzły Noxyr same wyłączają bota z nieważnym tokenem, żeby nie tkwił w martwej pętli ponownego łączenia; ponowne uruchomienie następuje po wklejeniu działającego tokena i włączeniu bota.
Gateway 4013/4014 albo „Discord odrzucił połączenie”
Uprzywilejowana intencja, która była włączona podczas konfiguracji, została później wyłączona, zwykle gdy ktoś klikał po karcie Bot z zupełnie innego powodu.
- W Developer Portal przejdź do Bot → Privileged Gateway Intents.
- Ponownie włącz Server Members Intent i Message Content Intent. Obie są wymagane; funkcje Noxyr (wiadomości powitalne, liczniki członków, czat AI, auto-respondery, transkrypty ticketów) potrzebują obu.
- Zapisz, a potem włącz bota ponownie ze strony Custom Bot w panelu. Ponieważ Discord stosuje zmiany intencji dopiero przy kolejnym logowaniu, samo ponowne włączenie przełącznika nie wystarczy; bot musi połączyć się od nowa.
Okno głosowania i okres ochronny wygasły
Custom Bot działa na podstawie głosu na Top.gg. Jeden głos odblokowuje go na 12 godzin; potem 74-godzinny okres ochronny utrzymuje bota w działaniu, podczas gdy strona w panelu się blokuje. Jeśli oba się skończą, bot przechodzi w offline, ale nic z Twojej konfiguracji nie zostaje usunięte.
- Zagłosuj na Noxyr na Top.gg.
- Wróć na stronę Custom Bot; odblokuje się od razu po zarejestrowaniu głosu.
- Bot uruchamia się sam, z tym samym tokenem i ustawieniami co wcześniej.
Przypomnienie w wiadomości prywatnej przychodzi 24 godziny po ostatnim głosie (12 godzin w okresie ochronnym), właśnie po to, by tego uniknąć. Jeśli status bota pokazuje „suspended”, strona sama powie, czy to głos, okres ochronny, czy kolejny problem z poniższej listy.
Noxyr został usunięty z serwera
Custom Bot działa na ustawieniach i bazie danych Noxyr dla danego serwera, więc zależy od tego, że Noxyr nadal jest członkiem. Jeśli Noxyr zostanie wyrzucony, custom bot przestaje obsługiwać ten serwer w ciągu około minuty i wysyła wiadomość prywatną do osoby, która usunęła Noxyr (oraz do właściciela bota, jeśli to ktoś inny), z linkiem zaproszeniowym.
- Zaproś Noxyr ponownie, używając linku z wiadomości prywatnej albo ze strony głównej Noxyr.
- Custom bot wraca do pracy sam, gdy Noxyr znowu jest na serwerze; nie trzeba ruszać tokena ani intencji.
Dopóki bot jest zatrzymany z tego konkretnego powodu, okno głosowania jest wstrzymane, a nie zużywane, więc szybkie ponowne zaproszenie Noxyr nie kosztuje Cię czasu na zegarze.
Jeśli żadna z powyższych metod nie pomaga
Najpierw sprawdź komunikat statusu na stronie Custom Bot; węzły Noxyr zapisują zrozumiały powód (zły token, złe intencje, zawieszenie albo ogólny komunikat o ponawianiu przy wszystkim innym), a nie gołą kod błędu. Jeśli komunikat statusu nie pasuje do żadnego z powyższych przypadków albo bot zostaje offline mimo naprawy, która powinna zadziałać, najszybciej zajmie się tym konkretnym serwerem Centrum wsparcia. Pełne kroki konfiguracji i rozwiązywania problemów są też w dokumentacji Custom Bot.
Częste pytania
Dlaczego mój bot przeszedł w offline, mimo że nic nie robiłem? „Nic” zwykle oznacza, że ktoś inny z dostępem do portalu albo serwera coś zmienił: zresetował token, przełączył intencję, wyrzucił bota. Najpierw sprawdź komunikat statusu na stronie Custom Bot; podaje przyczynę.
Czy dane przepadną, jeśli bot przejdzie w offline? Nie. Tokeny, ustawienia, tickety, produkty, faktury i transkrypty są zachowane niezależnie od tego, dlaczego bot się zatrzymał. Naprawa przyczyny przywraca wszystko dokładnie tak, jak było.
Czy mogę całkowicie uniknąć offline spowodowanego głosowaniem? Głosuj mniej więcej co trzy i pół dnia (zanim skończy się 12-godzinne okno i 74-godzinny okres ochronny), a bot z tego powodu nigdy nie przestanie działać.
Czy muszę włączać intencje ponownie za każdym razem, gdy restartuję bota? Nie. Intencje to ustawienie samej aplikacji Discord, a nie coś, co się resetuje. Gdy obie są włączone i zapisane, zostają włączone, dopóki ktoś ich nie wyłączy.
Gotowy, żeby przywrócić bota online? Usuń przyczynę opisaną powyżej, a potem uruchom bota ze strony Custom Bot, albo dodaj Noxyr za darmo, jeśli konfigurujesz go po raz pierwszy.