W skrócie: „Internal Exception: io.netty…” pochodzi z warstwy sieciowej Minecraft, czyli biblioteki Netty: przy odczycie lub wysyłaniu pakietu danych wystąpił błąd i połączenie zostało zerwane. Może się to stać w kliencie albo na serwerze, który wtedy przesyła błąd graczowi jako powód rozłączenia. Najważniejsza jest część po dwukropku: mówi, którego pakietu dotyczy problem i co poszło nie tak. Najczęstsze przyczyny to różne wersje, proxy lub plugin, który zmienia pakiety, niepasujące mody oraz niestabilne połączenie.
Własny serwer Minecraft? W HostValues od €2,80 miesięcznie, online w kilka minut. Zobacz plany →
Co oznacza ten komunikat
Minecraft Java przesyła wszystko, co dzieje się między klientem a serwerem, w postaci pakietów przez połączenie TCP. Jeśli klient nie potrafi przetworzyć pakietu, zrywa połączenie i pokazuje powód. Gdzie pojawia się komunikat, zależy od momentu:
- Przy dołączaniu: ekran nosi tytuł „Failed to connect to the server”, a pod nim widać „Internal Exception: …”.
- W trakcie gry: ekran nosi tytuł „Connection Lost”. Przy błędach protokołu klient zapisuje dodatkowo raport w folderze
debugkatalogu gry (plikdisconnect-…-client.txt); przycisk „Open Report Directory” otwiera ten folder. - „Network Protocol Error”: ten komunikat pojawia się, gdy klient zdołał odczytać odebrany pakiet, ale nie zdołał go przetworzyć.
io.netty.handler.codec.DecoderException oznacza, że nie udało się odczytać przychodzącego pakietu. EncoderException to odpowiednik przy wysyłaniu. Jeśli dalej stoi Failed to decode packet '…', Minecraft podaje też nazwę pakietu, na przykład clientbound/minecraft:login_finished. Nazwa wskazuje kierunek: clientbound to pakiet od serwera do klienta, którego klient nie odczytał; serverbound to pakiet klienta, którego nie odczytał serwer. W tym drugim przypadku błąd widać też w logu serwera.
Najczęstsze warianty
| Komunikat | Co za nim stoi | Pierwszy krok |
|---|---|---|
DecoderException: Failed to decode packet '…' | Nie udało się odczytać pakietu, najczęściej dlatego, że klient i serwer nie mówią dokładnie tym samym protokołem. | Sprawdzić wersje, proxy, pluginy i mody |
… 'clientbound/minecraft:login_finished' | Błąd na ostatnim etapie logowania | Zobacz sekcję o login_finished poniżej |
Badly compressed packet - size of … is below server threshold of … lub … larger than protocol maximum of 8388608 | Pakiet nie pasuje do uzgodnionej kompresji albo jest za duży. | Sprawdzić proxy i pluginy, które przepisują pakiety |
Tried to read NBT tag that was too big | Blok danych, na przykład przedmiotu lub bloku, przekracza limit rozmiaru klienta. | Ustalić miejsce lub przedmiot, przy którym to się dzieje |
String too big lub The received string length is longer than maximum allowed | Pole tekstowe jest dłuższe niż dozwolone, na przykład nick dłuższy niż 16 znaków. | Sprawdzić proxy lub plugin, który zmienia nicki lub teksty |
Timed out | Jedna ze stron zbyt długo nie odpowiadała. | Sprawdzić konsolę serwera i połączenie |
Connection reset lub An existing connection was forcibly closed by the remote host | Druga strona albo urządzenie po drodze zakończyło połączenie. | Sprawdzić sieć, VPN i restarty serwera |
Co mogą sprawdzić gracze
- Ta sama wersja co na serwerze. Klient z inną wersją Minecraft wejdzie na serwer tylko wtedy, gdy działa tam ViaVersion (nowsze klienty) albo ViaVersion z ViaBackwards (starsze klienty). Jeśli wersja się nie zgadza, a tych pluginów brak, serwer zwykle odpowiada „Incompatible client! Please use …”.
- Test bez modów. Do testu warto uruchomić profil bez modów. Przy modpackach wersja paczki musi być dokładnie taka jak na serwerze; brakujący mod albo mod w innej wersji często kończy się błędem
Failed to decode packet. - Test na innym serwerze. Jeśli błąd pojawia się wszędzie, przyczyna leży raczej po stronie gracza: sieć, VPN, zapora albo mody.
- Stabilniejsze połączenie. Wyłączyć VPN, zrestartować router, użyć kabla zamiast Wi-Fi. To pomaga głównie przy
Timed outiConnection reset. - Przekazanie raportu. Administratorowi serwera warto wysłać pełny komunikat, godzinę i, jeśli jest, plik z folderu
debug. Więcej szczegółów zawieralogs/latest.logw katalogu gry.
Co mogą sprawdzić administratorzy serwera
- Log serwera z tej samej godziny. Jeśli jest tam błąd z nazwą pluginu lub moda, winowajca zwykle jest już znany.
- Wszystko, co dotyczy wersji, aktualne. Oprogramowanie serwera, ViaVersion i ViaBackwards oraz, jeśli jest, proxy (Velocity lub BungeeCord) muszą obsługiwać wersję klienta. Po nowej wersji Minecraft właśnie te elementy najczęściej potrzebują aktualizacji.
- Pluginy, które ingerują w ruch sieciowy. Biblioteki pakietów, takie jak ProtocolLib czy PacketEvents, oraz pluginy oparte na nich zmieniają pakiety. Jeśli któryś z nich nie jest przygotowany na wersję klienta, wysyła pakiety, których klient nie odczyta. Podejrzane pluginy najlepiej usuwać testowo po kolei, aż błąd zniknie.
- Na serwerach z modami porównać listy modów. Klient i serwer potrzebują tych samych modów w tych samych wersjach.
- Zawęzić zbyt duże dane. Jeśli
Tried to read NBT tag that was too bigpojawia się tylko w jednym miejscu, na przykład przy skrzyni albo w konkretnym chunku, prawdopodobnie znajduje się tam przedmiot lub blok z za dużą ilością zapisanych danych. - Przy timeoutach sprawdzić obciążenie serwera. Serwer regularnie wysyła pakiety keep-alive. Jeśli klient nie odpowie przez 15 sekund, serwer rozłącza go z komunikatem „Timed out”; jeśli zawiesi się sam serwer, rozłącza klient. Komunikat
Can't keep up! Is the server overloaded?w konsoli oznacza przeciążony serwer: jak rozpoznać to po MSPT, opisujemy w artykule o poprawie TPS serwera Minecraft. Za proxy Velocity z dużymi modpackami Forge dokumentacja Velocity zaleca zwiększenieread-timeoutwvelocity.tomli uruchomienie serwera Forge z odpowiednim-Dfml.readTimeout.
Przypadek szczególny: DecoderException przy login_finished
Pełny komunikat brzmi Internal Exception: io.netty.handler.codec.DecoderException: Failed to decode packet 'clientbound/minecraft:login_finished'. login_finished to pakiet „Login Success”: na koniec logowania serwer potwierdza w nim profil gracza, czyli nick, UUID i dane profilu, takie jak skin. Potem zaczyna się faza konfiguracji. Jeśli klient nie odczyta tego pakietu, dołączenie kończy się niepowodzeniem, zanim pojawi się świat.
Udokumentowane są dwie przyczyny:
- Proxy lub plugin, który ingeruje w logowanie, nie pasuje do wersji klienta. W zgłoszeniu na GitHubie (Velocity, issue 1858) natywne klienty 26.2 kończyły się dokładnie tym komunikatem; przyczyną był plugin AntiPopup, a nie samo Velocity. W innym przypadku (ViaVersion, issue 4943) wersja rozwojowa ViaVersion psuła logowanie klientów 1.20.x; poprzednia wersja działała.
- Profil przekracza limity protokołu. Nick może mieć najwyżej 16 znaków, a profil najwyżej 16 właściwości. Jeśli proxy lub plugin wyśle więcej, na przykład za długi nick, klient nie odczyta pakietu.
Rozwiązanie: zaktualizować proxy, ViaVersion, ViaBackwards i wszystkie pluginy, które zmieniają logowanie, nicki lub skiny. Jeśli to nie pomoże, testowo usuwać te pluginy po jednym. Jeśli błąd dotyczy tylko graczy z konkretną wersją Minecraft, widać od razu, który element jej jeszcze nie obsługuje.
Kiedy to nie jest błąd io.netty
„Connection timed out” przy łączeniu to inny przypadek: klient w ogóle nie dociera do serwera, na przykład przez zły adres, zły port albo zatrzymany serwer. Opisujemy go w artykule Minecraft Connection Timed Out: przyczyny i rozwiązania.
W HostValues
Na serwerze Minecraft w HostValues konsolę i log serwera widać bezpośrednio w panelu gry: tam znajdą Państwo godzinę błędu i ewentualne komunikaty pluginów. Wersję i oprogramowanie serwera zmienia się w zakładce Versions. W razie problemów prosimy wysłać w zgłoszeniu do supportu pełny komunikat, godzinę i, jeśli jest, raport z folderu debug.
Najczęściej zadawane pytania
Co oznacza „Internal Exception: io.netty.handler.codec.DecoderException”?
Nie udało się odczytać pakietu danych, więc połączenie zostało zerwane. Jeśli w nazwie pakietu jest clientbound, problem wystąpił w kliencie, a przy serverbound na serwerze. Najczęściej nie pasują do siebie wersje, mody albo proxy lub plugin.
Czy „Connection Lost” to wina internetu?
Czasami. Przy Timed out, Connection reset albo „forcibly closed” często winne jest połączenie. Przy DecoderException i Failed to decode packet przyczyną są prawie zawsze wersje, mody lub pluginy.
Czym jest login_finished?
To pakiet „Login Success”, którym serwer na koniec logowania potwierdza profil gracza. Błąd w tym miejscu zwykle pochodzi od proxy lub pluginu, który zmienia logowanie i nie obsługuje danej wersji Minecraft.
Gdzie znaleźć raport błędu?
W folderze debug katalogu gry Minecraft, w pliku disconnect-…-client.txt. Przycisk „Open Report Directory” na ekranie błędu otwiera go bezpośrednio. Ogólny log znajduje się w logs/latest.log.
Źródła: teksty i komunikaty klienta Minecraft 26.3; Minecraft Wiki, Java Edition protocol: Packets i Data types; API Netty: DecoderException; dokumentacja Velocity (FAQ, Configuration); zgłoszenia na GitHubie PaperMC/Velocity #1858 i ViaVersion #4943. Stan na 14 października 2026.
Wynajem własnego serwera Minecraft
Od €2,80 miesięcznie. Online w kilka minut, bez zobowiązań, z ochroną DDoS.
Jaki pakiet dla Państwa grupy?
- Vanilla lub kilka pluginów, do 5 graczy: Redstone (4 GB), €5,60 miesięcznie
- Lekki modpack, od 5 do 10 graczy: Gold (5 GB), €7,00 miesięcznie
- Ciężki modpack, np. All the Mods 10: Barrier (10 GB), €14,00 miesięcznie
Pierwszy raz w HostValues? Z kodem WELKOM10 otrzymają Państwo 10% zniżki na pierwsze zamówienie.