Een Minecraft-server berekent de wereld in ticks, 20 keer per seconde. Duurt een tick te lang of raakt het werkgeheugen op, dan schrijft de server waarschuwingen naar het log of stopt hij in het slechtste geval. Elk onderdeel hieronder legt een van deze meldingen uit: hoe je ze herkent, hoe ernstig ze zijn en wat je kunt doen. Eerst komen meldingen waarna de server crasht of wordt beëindigd, daarna waarschuwingen waarbij hij blijft draaien.

De volledige melding vind je in de Console of onder Bestanden in logs/latest.log, crashrapporten in de map crash-reports/. Lees altijd ook de regels ervoor: daar staat vaak wat de server heeft vertraagd. Maak vóór wijzigingen aan configuratie- of wereldbestanden onder Back-ups een back-up aan.

„A single server tick took … seconds“: de watchdog beëindigt de server

Zo ziet de melding eruit:

The server has not responded for <seconden> seconds! Creating thread dump
A single server tick took 60.00 seconds (should be max 0.05)

Wat er achter zit: De watchdog controleert of de server nog werkt. Duurt een tick, oftewel een rekenstap van de spelsimulatie, te lang, dan beëindigt hij de vastgelopen server; het spel valt dan uit. Paper schrijft vooraf tussenmeldingen met een thread dump, een momentopname van het lopende werk: herstelt de server zich op tijd, dan draait hij gewoon door. Veelvoorkomende oorzaken zijn geheugendruk of een zware plugin of mod.

Zo los je het op:

  1. Lees onder Bestanden in logs/latest.log de regels vóór de eerste watchdog-melding. Controleer eerdere fouten; staat daar Stopping server, onderzoek dan ook waar het afsluiten op blijft hangen.
  2. Bekijk in de thread dump de bovenste regels onder Server thread. Een naam van een plugin of mod laat zien waar de server het laatst mee bezig was.
  3. Controleer het werkgeheugen. OutOfMemoryError: Java heap space betekent dat het Java-werkgeheugen op is; controleer dan ook wat het in beslag neemt.
  4. Stop de server vóór je bestanden wijzigt. Werk de betreffende plugin bij onder Plugins of de mod onder Mods, of verwijder deze om te testen, start opnieuw op en controleer opnieuw.

Uitgebreid: „Can't keep up“ en watchdog-timeout goed oplossen

„Java heap space“: het werkgeheugen van de server is op

Zo ziet de melding eruit:

An unexpected error while handling a WorldEdit command … java.lang.OutOfMemoryError: Java heap space
[LuckPerms] Thread <Thread> threw an uncaught exception … java.lang.OutOfMemoryError: Java heap space
failed to handle chunk data (write) … java.lang.OutOfMemoryError: Java heap space

Wat erachter zit: Java beheert het werkgeheugen van de server in een gebied dat de heap heet, en dat is voor de huidige belasting volgelopen. Grote WorldEdit-acties, veel geladen chunks (werelddelen), grote modpacks of plugins met veel data kunnen veel geheugen nodig hebben. De server crasht vaak of wordt instabiel; ook het opslaan van wereld- of entity-data, zoals wezens en voorwerpen, kan mislukken. De genoemde thread of plugin laat zien waar geheugen ontbrak, niet per se de grootste geheugengebruiker.

Zo los je het op:

  1. Start de server opnieuw op om het volgelopen proces te beëindigen. Bij ongewijzigde belasting kan de fout terugkomen.
  2. Bepaal de geheugenbehoefte: Minecraft-RAM-behoefte plannen. Is je pakket niet genoeg, kies dan onder Instellingen & abonnement → Plan meer RAM.
  3. Verdeel grote WorldEdit-acties en verlaag indien nodig view-distance onder Bestanden in server.properties.
  4. Controleer na het herstarten de Console en de getroffen werelddelen. Bij meldingen over chunk data (write) moet je vooral nagaan of de laatste stand is opgeslagen.

Goed om te weten: Een back-up vóór de volgende grote wereldwijziging helpt om verloren wijzigingen te herstellen.

„This crash report has been saved to …“: server gecrasht

Zo ziet de melding eruit:

This crash report has been saved to: crash-reports/crash-<Date>_<Time of day>-server.txt

Wat erachter zit: De server is beëindigd door een harde fout en heeft een crashrapport geschreven. De melding zelf vertelt alleen waar dit rapport staat. De werkelijke oorzaak, bijvoorbeeld een mod, een plugin, de wereld of te weinig werkgeheugen, staat in het bestand.

Zo los je het op:

  1. Open onder Bestanden de map crash-reports/ en daarin het genoemde bestand. De naam bevat de datum en het tijdstip van de crash.
  2. Lees het eerste gedeelte: achter Description: staat een korte beschrijving, daaronder de foutregel en de stacktrace, oftewel de lijst met programmaonderdelen die tot de fout hebben geleid.
  3. Controleer of de in de fout genoemde mods of plugins in een passende versie aanwezig zijn. Werk het betreffende onderdeel bij onder Mods of Plugins, of verwijder het na een back-up om het te testen.
  4. Bij OutOfMemoryError lees je de toevoeging bij de melding. Staat er Java heap space, dan is het Java-werkgeheugen vol; als er te weinig RAM is geboekt, kies je onder Instellingen & abonnement → Plan meer RAM.
  5. Start de server en houd de Console in de gaten tot hij volledig draait.

Goed om te weten: Bewaar het rapport voor het zoeken naar fouten en vergelijk de datum en het tijdstip met de huidige crash. Voor modservers: Modfouten op Forge-, NeoForge- en Fabric-servers

Fout in de hoofdlus van het spel

Zo ziet de melding eruit:

Exception in server tick loop
Caused by: java.lang.<ErrorType>: <Details>

Wat erachter zit: De hoofdlus berekent tick voor tick de wereld. Een exception, oftewel een programmafout, is tot in deze lus doorgedrongen en heeft hem verstoord. De server crasht dan meestal en schrijft een crashrapport. De eigenlijke oorzaak staat bijna altijd in de direct volgende Caused by-regel.

Zo los je het op:

  1. Zoek de melding in logs/latest.log of in het nieuwste rapport onder crash-reports/.
  2. Lees de Caused by-regel direct eronder. Zijn het er meerdere, dan leidt de onderste meestal naar de kern van het probleem.
  3. De regels met at … daaronder noemen pakket- en bestandsnamen. Daaraan herken je de betrokken plugin of mod.
  4. Werk hem bij of verwijder hem onder Plugins of Mods en start de server opnieuw op.

Goed om te weten: Deze melding is geen lagprobleem, maar een concrete fout. Meer werkgeheugen helpt alleen als de Caused by-regel een OutOfMemoryError noemt.

Uitgebreid: „Can't keep up“ en watchdog-timeout goed oplossen

Werkgeheugen aan de limiet: GC overhead limit exceeded

Zo ziet de melding eruit:

java.lang.OutOfMemoryError: GC overhead limit exceeded

Wat erachter zit: Java ruimt geheugen dat niet meer nodig is automatisch op. Dat heet garbage collection, kortweg GC. Deze melding betekent: Java is bijna de hele tijd bezig met opruimen en krijgt daarbij nauwelijks nog geheugen terug. De heap, oftewel het werkgeheugen van Java, is praktisch vol. De server reageert nauwelijks nog of crasht.

Zo los je het op:

  1. Start de server opnieuw op.
  2. Bepaal hoeveel werkgeheugen jouw setup nodig heeft. Uitgebreid: Minecraft-RAM-behoefte plannen
  3. Is je pakket niet genoeg, kies dan onder Instellingen & abonnement → Plan meer RAM.
  4. Verlaag de chunk- en entitybelasting: verlaag de zichtafstand view-distance in de server.properties, verklein grote dierenfarms en ruim rondslingerende items op.

Goed om te weten: Een herstart geeft alleen even lucht. Stijgt het verbruik na elke herstart gestaag tot de limiet, terwijl de belasting gelijk blijft, dan kan ook een plugin of mod geheugen vasthouden.

Geen nieuwe thread mogelijk: unable to create native thread

Zo ziet de melding eruit:

java.lang.OutOfMemoryError: unable to create native thread

Wat erachter zit: Een thread is een parallelle werkstroom. Java wilde er nog een starten en kon dat niet. Ondanks OutOfMemoryError in de naam is dit geen bewijs van een volle Java-heap. Meestal draaien er te veel threads tegelijk, is een procesgrens bereikt of ontbreekt er geheugen buiten de heap. De server kan dan geen nieuwe taken meer starten en wordt instabiel. Welke plugin of mod de threads aanmaakt, vertelt deze regel niet.

Zo los je het op:

  1. Boek niet zomaar meer RAM. Meer werkgeheugen voor Java lost deze melding niet automatisch op.
  2. Lees in logs/latest.log de regels vóór de melding: wat liep er op het moment van de fout, welke plugins meldden zich opvallend vaak?
  3. Onderbouw de veroorzaker tijdens runtime. Met spark profiler start --thread * in de Console zie je alle lopende threads. Hun namen verraden vaak de plugin of mod.
  4. Pas als een veroorzaker is aangetoond, werk je hem bij onder Plugins of Mods, controleer je zijn instellingen of verwijder je hem.

Kom je er niet uit, open dan een ticket en noem het tijdstip van de melding. Over spark: spark: lag vinden en begrijpen

„Can't keep up“: de server kan zijn ticks niet bijhouden

Zo ziet de melding eruit:

Can't keep up! Is the server overloaded? Running 2014ms or 40 ticks behind

Wat er achter zit: Minecraft rekent normaal 20 ticks per seconde, dus een tick heeft een tijdbudget van 50 milliseconden. Duren deze rekenstappen te lang, dan loopt de server achter, wat de melding in milliseconden en ticks aangeeft. De server blijft draaien, maar merkbaar trager: afgebroken blokken verschijnen weer, mobs haperen. De oorzaak is meestal geheugen- of CPU-druk; losse meldingen kunnen optreden bij het opstarten of het genereren van nieuwe gebieden.

Zo los je het op:

  1. Controleer of spark beschikbaar is. Actuele Paper-versies bevatten het; op andere ondersteunde servers installeer je de passende plugin- of modversie.
  2. Meet tijdens de lag met spark tps in de Console. MSPT staat voor milliseconden per tick: ligt de tickduur voortdurend boven het tijdbudget, dan daalt de tickrate.
  3. Vind de veroorzaker met spark profiler start --timeout 120 en open de link die daarna wordt weergegeven.
  4. Verlaag bij een gestopte server de zichtafstand view-distance en de simulatieafstand simulation-distance in server.properties. Verminder grote farms of genereer de wereld vooraf.
  5. Controleer of het werkgeheugen toereikend is en start na configuratiewijzigingen opnieuw op.

Uitgebreid: „Can't keep up“ en watchdog-timeout goed oplossen

„DO NOT REPORT THIS TO PAPER“: diagnose bij een vastgelopen server

Zo ziet de melding eruit:

--- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---
Server thread dump (Look for plugins here before reporting to Paper!):

Wat er achter zit: Hangt de serverthread enkele seconden, dan schrijft Paper een diagnose met een thread dump, dus een momentopname van waar de server op dat moment mee bezig is. Het spel haperde in die tijd; na de hapering kan de server doordraaien. Duurt de blokkade te lang, dan beëindigt de watchdog hem.

Zo los je het op:

  1. Lees in de dump de bovenste regels onder Server thread dump. Staat daar de naam van een plugin of mod, dan is dat een sterke aanwijzing voor de veroorzaker.
  2. Stop de server, werk de betreffende plugin bij onder Plugins of de mod onder Mods, of verwijder deze om te testen, en start opnieuw op.
  3. Komen de dumps vaker voor, controleer dan het werkgeheugen, je plugins en de zichtafstand view-distance in de server.properties.
  4. Losse dumps, bijvoorbeeld bij het opstarten of bij het opslaan van een grote wereld, kun je gewoon in de gaten houden in plaats van meteen in te grijpen.

Uitgebreid: „Can't keep up“ en watchdog-timeout goed oplossen

„ChunkTaskScheduler“: Paper wacht tijdens het laden of genereren van een chunk

Zo ziet de melding eruit:

[ChunkTaskScheduler] Chunk wait task info below:
[ChunkTaskScheduler] Chunk holder: NewChunkHolder{world=<World>, chunkX=<x>, chunkZ=<z>, …, currentGenStatus=minecraft:initialize_light, requestedGenStatus=minecraft:full, …}

Wat erachter zit: Paper heeft langer dan verwacht gewacht op het laden of genereren van een chunk, oftewel een wereldsectie van 16 × 16 blokken, en heeft een diagnose weggeschreven. De server hapert op dat moment. currentGenStatus toont de bereikte status, requestedGenStatus het doel. Meestal komt dit door overbelasting: wereldgeneratie, veel spelers die ver uit elkaar zijn of trage plugins. Minder vaak is een regio beschadigd.

Zo los je het op:

  1. Verlaag onder Bestanden de zichtafstand view-distance in server.properties en start de server opnieuw op.
  2. Genereer de wereld vooraf: Chunky: Minecraft-wereld vooraf genereren.
  3. Is spark beschikbaar, onderzoek dan de belasting tijdens de storing met spark profiler start --timeout 120 in de Console. Het rapport laat zien welke processen tijd kosten.
  4. Gaat het herhaaldelijk om dezelfde wereld en dezelfde chunkcoördinaten, controleer dan de omliggende logregels op laadfouten van deze regio. Stop bij bevestigde beschadiging de server, maak een back-up van de huidige stand en zet onder Back-ups een intacte back-up terug. Wijzigingen sinds die back-up gaan daarbij verloren.

Goed om te weten: Zeer grote coördinaten wijzen op reizen ver van het midden van de wereld. Een passende wereldgrens beperkt verdere verkenning.

„The server has stopped responding“: de Paper-watchdog meldt een vastloper

Zo ziet de melding eruit:

The server has stopped responding! This is (probably) not a Paper bug.
If you see a world save or edit, then it means you did far more than your server can handle at once
If this is the case, consider increasing timeout-time in spigot.yml but note that this will replace the crash with LARGE lag spikes

Wat erachter zit: Deze regels horen bij het meldingsblok van de Paper-watchdog, die een langer geblokkeerde main thread herkent, oftewel de thread voor het spelverloop. Tijdens de vastloper staat het spel stil; bij aanhoudende blokkade beëindigt de watchdog de server. Typische oorzaken zijn overbelaste plugins, grote wereldbewerkingen of blokkerende HTTP- en databasetoegang. De thread-dump daaronder toont de op dat moment uitgevoerde programma-aanroepen.

Zo los je het op:

  1. Lees de thread-dump in logs/latest.log onder Bestanden. Controleer genoemde plugins op updates; pas hun configuratie aan of verwijder ze om te testen terwijl de server is gestopt.
  2. Toont hij wereldbewerking of opslaan, verdeel grote acties, bijvoorbeeld met WorldEdit, in kleinere stappen.
  3. Toont hij HTTP- of MySQL-toegang, controleer dan bij de betrokken plugin de verbinding en de bereikbaarheid van de dienst.
  4. Een hogere timeout-time in spigot.yml verlengt de wachttijd, maar lost de blokkade niet op.
  5. Bij herhaalde vastlopers verminder je de plugin-belasting en controleer je het werkgeheugen.

Uitgebreid: „Can't keep up“ en watchdog-timeout goed oplossen

Chunktaak van Paper mislukt met BootstrapMethodError

Zo ziet de melding eruit:

[ca.spottedleaf.concurrentutil.executor.thread.BalancedPrioritisedThreadPool] Exception thrown from thread <Thread>
java.lang.BootstrapMethodError: bootstrap method initialization exception

Wat erachter zit: Paper laadt en genereert chunks in eigen threads, oftewel parallelle werkstromen naast het hoofdspel. In een daarvan kon Java een aanroeppunt in het programma niet voorbereiden. Mogelijke oorzaken zijn een fout in Paper, een incompatibele uitbreiding of een niet-ondersteunde Java-versie. De melding alleen wijst geen van deze oorzaken aan.

Zo los je het op:

  1. Werk Paper onder Versie bij naar een actuele stabiele build van jouw Minecraft-versie.
  2. Gebruik een Java-versie die door deze build wordt ondersteund: Welke Java-versie heeft jouw Minecraft-server nodig?
  3. Lees de volledige stacktrace in logs/latest.log. Noemt een Caused by-regel een plugin, werk die dan bij onder Plugins.
  4. Vervang serverbibliotheken niet met de hand. Dat veroorzaakt eerder nieuwe fouten.
  5. Komt de fout na de update herhaaldelijk terug, meld dan de volledige stacktrace bij het Paper-project.

Minecraft kan het crashrapport niet opslaan

Zo ziet de melding eruit:

We were unable to save this crash report to disk.

Wat erachter zit: De melding heeft betrekking op het wegschrijven van het crashrapport. Minecraft heeft na een fout geprobeerd de diagnose op de schijf op te slaan en kon het rapportbestand niet opslaan. De oorzaak van de oorspronkelijke fout staat eerder in de Console; het ontbrekende rapport maakt het zoeken naar de fout later lastiger.

Zo los je het op:

  1. Bewaar eerst het volledige foutblok uit de Console, inclusief de regels vóór deze melding.
  2. Controleer onder Bestanden de bestaande bestanden in crash-reports/ en logs/latest.log. Lees de concrete schrijffoutmelding en controleer de beschikbare opslagruimte.
  3. Los de daar genoemde oorzaak op. Is het pad nog steeds niet beschrijfbaar, open dan een ticket en vermeld het tijdstip en de schrijffout.

Staat jouw melding er niet bij?

Lees de hele melding in logs/latest.log en vooral de regels ervoor: overbelasting heeft bijna altijd een aanleiding die vóór de eerste waarschuwing staat. In de stacktrace of thread dump verraden pakketnamen, dus de door punten gescheiden mapnamen zoals com.<ontwikkelaar>.<plugin>, en bestandsnamen zoals <Plugin>.jar welke plugin of welke mod erbij betrokken is. Maak vóór wijzigingen aan configuratiebestanden onder Back-ups een back-up aan. Kom je er niet uit, open dan een ticket en vermeld het tijdstip van de melding.