Minecraft Connection Lost: błąd Internal Exception io.netty

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 debug katalogu gry (plik disconnect-…-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

KomunikatCo za nim stoiPierwszy 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 logowaniaZobacz sekcję o login_finished poniżej
Badly compressed packet - size of … is below server threshold of … lub … larger than protocol maximum of 8388608Pakiet 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 bigBlok 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 allowedPole 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 outJedna 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 hostDruga strona albo urządzenie po drodze zakończyło połączenie.Sprawdzić sieć, VPN i restarty serwera

Co mogą sprawdzić gracze

  1. 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 …”.
  2. 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.
  3. Test na innym serwerze. Jeśli błąd pojawia się wszędzie, przyczyna leży raczej po stronie gracza: sieć, VPN, zapora albo mody.
  4. Stabilniejsze połączenie. Wyłączyć VPN, zrestartować router, użyć kabla zamiast Wi-Fi. To pomaga głównie przy Timed out i Connection reset.
  5. Przekazanie raportu. Administratorowi serwera warto wysłać pełny komunikat, godzinę i, jeśli jest, plik z folderu debug. Więcej szczegółów zawiera logs/latest.log w katalogu gry.

Co mogą sprawdzić administratorzy serwera

  1. Log serwera z tej samej godziny. Jeśli jest tam błąd z nazwą pluginu lub moda, winowajca zwykle jest już znany.
  2. 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.
  3. 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.
  4. Na serwerach z modami porównać listy modów. Klient i serwer potrzebują tych samych modów w tych samych wersjach.
  5. Zawęzić zbyt duże dane. Jeśli Tried to read NBT tag that was too big pojawia 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.
  6. 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ększenie read-timeout w velocity.toml i 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?

Zobacz plany Zamów teraz

Pierwszy raz w HostValues? Z kodem WELKOM10 otrzymają Państwo 10% zniżki na pierwsze zamówienie.


Nadal masz pytania? Utwórz ticket, a nasz zespół Ci pomoże.

Powrót do bloga