Un serveur Minecraft calcule le monde en ticks, 20 fois par seconde. Si un tick dure trop longtemps ou si la mémoire vive est épuisée, le serveur écrit des avertissements dans le log ou, dans le pire des cas, s'arrête. Chaque section ci-dessous explique l'un de ces messages : comment le reconnaître, sa gravité et ce que tu peux faire. Les messages après lesquels le serveur plante ou se ferme viennent en premier, puis les avertissements pour lesquels il continue de tourner.

Tu trouveras le message complet dans la Console ou sous Fichiers dans logs/latest.log, et les rapports de crash dans le dossier crash-reports/. Lis toujours aussi les lignes qui précèdent : on y trouve souvent ce qui a ralenti le serveur. Avant de modifier des fichiers de configuration ou de monde, crée une sauvegarde sous Sauvegardes.

Le serveur ne répond plus : arrêt par le Watchdog

Voici à quoi ressemble le message :

The server has not responded for 25 seconds! Creating thread dump
A single server tick took <Seconds> seconds

Ce qui se passe : le Watchdog est un gardien qui vérifie que le serveur travaille toujours. Si un seul tick dure trop longtemps, le serveur est considéré comme figé et le Watchdog l'arrête. Jusque-là, Paper écrit des messages intermédiaires comme « has not responded for 25 seconds » accompagnés d'un thread dump, un instantané de ce que le serveur est en train de faire. Les causes fréquentes sont une pression sur la mémoire ou un plugin ou un mod trop lourd.

Voici comment le corriger :

  1. Dans logs/latest.log, lis les lignes avant le premier message du Watchdog. Si une autre erreur ou Stopping server s'y trouve déjà, c'est cette erreur la véritable cause et le Watchdog n'en est que la conséquence.
  2. Dans le thread dump, regarde les premières lignes sous Server thread. Un nom de plugin ou de mod à cet endroit indique ce qui a occupé le serveur en dernier.
  3. Vérifie la mémoire vive. Si OutOfMemoryError apparaît aussi dans le log, elle ne suffit pas (voir les sections plus bas).
  4. Mets à jour ou supprime le plugin trouvé dans Plugins ou le mod dans Mods, puis redémarre le serveur.

Pour en savoir plus : Résoudre correctement « Can't keep up » et le timeout du Watchdog

Mémoire vive épuisée : Java heap space

Voici à quoi ressemble le message :

java.lang.OutOfMemoryError: Java heap space
Exception in thread "<Thread>" java.lang.OutOfMemoryError: Java heap space

Ce qui se passe : Java gère la mémoire vive du serveur dans une zone appelée heap. Celle-ci est saturée : il n'y avait pas assez de mémoire vive pour la charge actuelle. Le serveur plante alors le plus souvent ou devient instable. Les gros consommateurs de mémoire typiques sont de nombreux chunks chargés, de grands modpacks, beaucoup de mobs et d'items, ainsi que des plugins qui manipulent de grandes quantités de données.

Voici comment le corriger :

  1. Redémarre le serveur pour qu'il refonctionne de manière stable.
  2. Détermine combien de mémoire vive ta configuration nécessite réellement. Pour en savoir plus : Planifier les besoins en RAM de Minecraft
  3. Si ton offre ne suffit pas, choisis-en une avec plus de RAM sous Paramètres et abonnement → Plan.
  4. En attendant, réduis la charge, par exemple la distance de vue view-distance dans le fichier server.properties.

Bon à savoir : le thread dans lequel le message apparaît n'est pas automatiquement le responsable. Un thread est un fil de travail parallèle, et celui-ci a simplement été le premier à demander de la mémoire quand il n'y en avait plus de libre.

Le serveur a planté : rapport de plantage enregistré

Voici à quoi ressemble le message :

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

Ce qui se passe : le serveur a été arrêté par une erreur grave et a écrit un rapport de plantage. Le message indique seulement où se trouve ce rapport. La véritable cause, par exemple un mod, un plugin, le monde ou un manque de mémoire vive, figure dans le fichier.

Voici comment le corriger :

  1. Dans Fichiers, ouvre le dossier crash-reports/ puis le fichier indiqué. Son nom contient la date et l'heure du plantage.
  2. Lis la première section : après Description: se trouve une courte description, puis la ligne d'erreur et la stacktrace, c'est-à-dire la liste des endroits du programme qui ont mené à l'erreur.
  3. Le nom de mod ou de plugin qui y figure est le responsable. Mets-le à jour dans Mods ou Plugins, ou supprime-le.
  4. Si OutOfMemoryError y figure, la mémoire vive ne suffit pas. Choisis plus de RAM sous Paramètres et abonnement → Plan.
  5. Démarre le serveur et surveille la Console jusqu'à ce qu'il soit complètement lancé.

Bon à savoir : les rapports de plantage restent en place. Supprime les rapports déjà lus afin de trouver immédiatement le nouveau la prochaine fois. Pour les serveurs avec mods : Erreurs de mods sur les serveurs Forge, NeoForge et Fabric

Erreur dans la boucle principale du jeu

Voici à quoi ressemble le message :

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

Ce qui se passe : la boucle principale calcule le monde tick après tick. Une exception, c'est-à-dire une erreur de programme, a remonté jusque dans cette boucle et l'a perturbée. Le serveur plante alors le plus souvent et écrit un rapport de plantage. La véritable cause se trouve presque toujours dans la ligne Caused by qui suit directement.

Voici comment le corriger :

  1. Cherche le message dans logs/latest.log ou dans le rapport le plus récent sous crash-reports/.
  2. Lis la ligne Caused by juste en dessous. S'il y en a plusieurs, la dernière mène généralement à la racine du problème.
  3. Les lignes avec at … en dessous indiquent des noms de paquets et de fichiers. Tu y reconnais le plugin ou le mod concerné.
  4. Mets-le à jour ou supprime-le dans Plugins ou Mods, puis redémarre le serveur.

Bon à savoir : ce message n'est pas un problème de lag, mais une erreur concrète. Plus de mémoire vive n'aide que si la ligne Caused by mentionne un OutOfMemoryError.

Pour en savoir plus : Résoudre correctement « Can't keep up » et le timeout du Watchdog

Mémoire vive à la limite : GC overhead limit exceeded

Voici à quoi ressemble le message :

java.lang.OutOfMemoryError: GC overhead limit exceeded

Ce qui se passe : Java libère automatiquement la mémoire dont il n'a plus besoin. C'est ce qu'on appelle le Garbage Collection, ou GC. Ce message signifie que Java passe presque tout son temps à nettoyer et ne récupère presque plus de mémoire. Le heap, c'est-à-dire la mémoire vive de Java, est pratiquement plein. Le serveur ne réagit presque plus ou plante.

Voici comment le corriger :

  1. Redémarre le serveur.
  2. Détermine combien de mémoire vive ta configuration nécessite. Pour en savoir plus : Planifier les besoins en RAM de Minecraft
  3. Si ton offre ne suffit pas, choisis plus de RAM sous Paramètres et abonnement → Plan.
  4. Réduis la charge des chunks et des entités : diminue la distance de vue view-distance dans le fichier server.properties, réduis les grandes fermes d'animaux et nettoie les items qui traînent.

Bon à savoir : un redémarrage ne fait que souffler un peu. Si la consommation augmente régulièrement jusqu'à la limite après chaque redémarrage alors que la charge reste la même, un plugin ou un mod peut aussi retenir de la mémoire.

Impossible de créer un nouveau thread : unable to create native thread

Voici à quoi ressemble le message :

java.lang.OutOfMemoryError: unable to create native thread

Ce qui se passe : un thread est un fil de travail parallèle. Java a voulu en démarrer un de plus et n'y est pas parvenu. Malgré OutOfMemoryError dans le nom, ce n'est pas la preuve d'un heap Java plein. Le plus souvent, trop de threads tournent en même temps, une limite de processus est atteinte ou il manque de la mémoire en dehors du heap. Le serveur ne peut alors plus lancer de nouvelles tâches et devient instable. Cette ligne ne révèle pas quel plugin ou quel mod crée les threads.

Voici comment le corriger :

  1. Ne réserve pas systématiquement plus de RAM. Davantage de mémoire vive pour Java ne résout pas automatiquement ce message.
  2. Dans logs/latest.log, lis les lignes avant le message : qu'est-ce qui tournait au moment de l'erreur, quels plugins se sont manifestés de façon répétée ?
  3. Identifie le responsable en cours d'exécution. Avec spark profiler start --thread * dans la Console, tu vois tous les threads en cours. Leurs noms révèlent souvent le plugin ou le mod.
  4. Ce n'est qu'une fois le responsable identifié que tu le mets à jour dans Plugins ou Mods, vérifies ses paramètres ou le supprimes.

Si tu n'avances pas, ouvre un ticket et indique l'heure du message. À propos de spark : spark : trouver et comprendre le lag

Le serveur n'arrive pas à suivre : « Can't keep up »

Voici à quoi ressemble le message :

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

Ce qui se passe : Minecraft calcule 20 ticks par seconde, un tick peut donc durer 50 millisecondes. Si les ticks durent plus longtemps, un retard s'accumule, que le message indique en millisecondes et en ticks. Le serveur continue de tourner, mais nettement plus lentement : les blocs cassés réapparaissent, les mobs saccadent. La cause est généralement une pression sur la mémoire ou le CPU. Quelques messages isolés au démarrage ou lors de la génération de nouvelles zones sont normaux.

Comment le corriger :

  1. Mesure la charge avec spark tps dans la Console. Ce qui compte, c'est le MSPT, les millisecondes par tick : jusqu'à 50 ms, tout va bien.
  2. Trouve le coupable avec spark profiler start --timeout 120 et ouvre le lien que le serveur affiche ensuite.
  3. Réduis la charge : diminue la distance d'affichage view-distance et la distance de simulation simulation-distance dans le fichier server.properties, prégénère le monde, simplifie les grosses fermes.
  4. Vérifie que la mémoire vive est suffisante (section « Mémoire épuisée : Java heap space »).

Bon à savoir : spark est déjà inclus dans les serveurs Paper récents ; sur les autres serveurs, tu l'installes en tant que plugin ou mod.

Pour aller plus loin : Corriger correctement « Can't keep up » et le timeout du watchdog

Diagnostic du watchdog de Paper : le serveur a brièvement figé

Voici à quoi ressemble le message :

--- 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!):

Ce qui se passe : Si le thread du serveur se bloque pendant quelques secondes, Paper écrit un diagnostic avec un thread dump, c'est-à-dire un instantané de ce sur quoi le serveur travaille à cet instant. Comme le dit la première ligne : ce n'est ni un bug de Paper ni un crash, mais c'est un net indice de lag. Si le serveur se rétablit, le problème en reste à ce blocage. S'il atteint la limite, l'arrêt du watchdog décrit dans la première section s'ensuit.

Comment le corriger :

  1. Dans le dump, lis les premières lignes sous Server thread dump. Si un nom de plugin ou de mod y figure, c'est un fort indice du coupable.
  2. Mets à jour ce plugin dans Plugins ou retire-le pour tester.
  3. Si les dumps se multiplient, vérifie la mémoire vive, tes plugins et la distance d'affichage view-distance dans le fichier server.properties.
  4. Pour des dumps isolés, par exemple au démarrage ou lors de la sauvegarde d'un grand monde, tu peux simplement observer au lieu d'intervenir tout de suite.

Pour aller plus loin : Corriger correctement « Can't keep up » et le timeout du watchdog

Le serveur se bloque lors du chargement d'un chunk

Voici à quoi ressemble le message :

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

Ce qui se passe : Paper a attendu plus longtemps que prévu le chargement ou la génération d'un chunk, c'est-à-dire une section du monde de 16 × 16 blocs, et a écrit un diagnostic à ce sujet. Le serveur accroche à ce moment-là. currentGenStatus indique jusqu'où le chunk est arrivé, requestedGenStatus l'objectif. La cause est le plus souvent une surcharge : génération du monde, nombreux joueurs éloignés les uns des autres ou plugins lents. Plus rarement, une région est endommagée.

Comment le corriger :

  1. Réduis la distance d'affichage view-distance dans le fichier server.properties.
  2. Prégénère le monde pour que les chunks ne soient pas créés pendant que l'on joue : Chunky : prégénérer un monde Minecraft
  3. Vérifie les plugins avec spark profiler start --timeout 120 dans la Console.
  4. Si le diagnostic mentionne toujours le même monde et les mêmes coordonnées de chunk, la région est endommagée. Arrête le serveur et restaure une sauvegarde dans Sauvegardes.

Bon à savoir : Si les coordonnées affichées sont étonnamment grandes, quelqu'un s'est aventuré très loin. Une bordure du monde avec worldborder set <Diamètre> permet de limiter cela.

Bloc d'avertissement du watchdog de Paper : le serveur ne répondait plus

Voici à quoi ressemble le message :

The server has stopped responding! This is (probably) not a Paper bug.
If you see a plugin in the Server thread dump below, then please report it to that author
If this is the case, consider increasing timeout-time in spigot.yml but note that this will replace the crash with LARGE lag spikes

Ce qui se passe : Ces lignes sont un texte d'avertissement fixe que Paper écrit avant le thread dump. Le thread principal du serveur n'a pas répondu pendant plus longtemps que la limite du watchdog. Le texte cite lui-même les raisons typiques : un plugin surchargé, de très grosses opérations sur le monde en une seule fois, ou des accès HTTP et base de données qui bloquent le thread du serveur.

Comment le corriger :

  1. Lis le thread dump sous ce bloc. Si un plugin y apparaît, mets-le à jour, configure-le ou retire-le dans Plugins.
  2. Si tu y vois la sauvegarde ou la modification du monde, découpe les grosses actions, par exemple avec WorldEdit, en étapes plus petites.
  3. Si tu vois des accès HTTP ou MySQL, c'est généralement qu'un plugin attend un service externe ou une base de données. Vérifie ses informations de connexion.
  4. N'augmente timeout-time dans le fichier spigot.yml que de façon réfléchie. Comme l'indique l'avertissement, tu remplaces ainsi le crash par de longs blocages.
  5. En cas de blocages répétés, réduis la charge des plugins et vérifie la mémoire vive.

Pour aller plus loin : Corriger correctement « Can't keep up » et le timeout du watchdog

La tâche de chunk de Paper échoue avec un BootstrapMethodError

Voici à quoi ressemble le message :

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

Ce qui se passe : Paper charge et génère les chunks dans ses propres threads, c'est-à-dire des fils d'exécution parallèles en dehors du jeu principal. Dans l'un d'eux, Java n'a pas pu préparer un point d'appel dans le programme. Les causes possibles sont un bug de Paper, une extension incompatible ou une version de Java non prise en charge. Le message seul ne permet pas de déterminer laquelle.

Comment le corriger :

  1. Mets Paper à jour dans Version vers un build stable récent correspondant à ta version de Minecraft.
  2. Utilise une version de Java prise en charge par ce build : Quelle version de Java ton serveur Minecraft requiert-il ?
  3. Lis la stacktrace complète dans logs/latest.log. Si une ligne Caused by mentionne un plugin, mets-le à jour dans Plugins.
  4. Ne remplace pas à la main des bibliothèques du serveur. Cela provoque plutôt de nouvelles erreurs.
  5. Si l'erreur se reproduit après la mise à jour, signale la stacktrace complète au projet Paper.

Ton message n'est pas dans la liste ?

Lis le message en entier dans logs/latest.log et surtout les lignes qui précèdent : une surcharge a presque toujours un déclencheur qui se trouve avant le premier avertissement. Dans la stacktrace ou le thread dump, les noms de paquets, c'est-à-dire les noms de dossiers séparés par des points comme com.<Développeur>.<Plugin>, et les noms de fichiers comme <Plugin>.jar indiquent quel plugin ou quel mod est concerné. Avant de modifier des fichiers de configuration, crée une sauvegarde sous Sauvegardes. Si tu ne t'en sors pas, ouvre un ticket et indique l'heure du message.