Cuando un plugin o un mod se topa con un error de programa durante el funcionamiento, Java escribe un mensaje de error con un stacktrace en el log. El stacktrace es la lista de líneas „at“ que aparece debajo de la línea del error. Muestra qué parte del programa se estaba ejecutando y, por lo general, delata el plugin o el mod responsable. La mayoría de estos errores no paralizan el servidor, pero una función deja de funcionar, y los errores repetidos llenan la consola.

Cada apartado de abajo trata un mensaje: qué aspecto tiene, qué hay detrás y qué puedes hacer. Encontrarás el mensaje completo en la Consola o en Archivos, dentro de logs/latest.log. Lee también las líneas justo anteriores y posteriores. Antes de modificar archivos de configuración o del mundo, o de reemplazar plugins, crea una copia en Copias de seguridad. Lo mejor es reemplazar los archivos de los plugins con el servidor detenido.

NullPointerException: un plugin o un mod accede a un valor inexistente

Así se ve el mensaje:

java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonObject.entrySet()" because "jsonobject" is null
java.lang.NullPointerException: Cannot invoke "java.lang.invoke.MethodHandle.invoke(Object, String)" because "this.DESERIALIZE_METHOD" is null
java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonElement.getAsBoolean()" because the return value of "com.google.gson.JsonObject.get(String)" is null

Qué hay detrás: Un plugin o un mod accede a un objeto inexistente; Java llama a este valor «null». Tras «Cannot invoke» aparece el método y tras «because» el valor que falta. Esto también puede ocurrir al leer un archivo de idioma o de configuración. La acción afectada se cancela; con «Skipped language file» se omite el archivo de idioma. Durante el inicio, el error también puede interrumpir el proceso de arranque.

Así lo solucionas:

  1. Abre el mensaje completo en la Consola o en logs/latest.log. Lee también las líneas anteriores: un archivo de idioma o de configuración mencionado ayuda a identificar el origen.
  2. Las líneas «at» se llaman stacktrace: la cadena de llamadas hasta el error. Léela desde la primera línea hasta el plugin o mod implicado; la primera puede mencionar a Minecraft mismo.
  3. Actualiza el plugin identificado en Plugins o el mod en Mods según la versión del servidor. Detén el servidor antes de reemplazar los archivos y reinícialo después.
  4. Si se menciona una configuración, haz una copia de ella y compara los ajustes necesarios con las indicaciones del autor. Si el error persiste, envíale el mensaje completo y la acción que lo provoca.

Bueno saber: pl:mixin:APP:<Mod>.mixins.json indica un mod con un Mixin, una intervención en los procesos del juego.

«Could not pass event»: un plugin falla durante un evento del juego

Así se ve el mensaje:

Could not pass event <Evento> to <Plugin> v<Versión>
java.lang.NoSuchMethodError: …
java.lang.IllegalArgumentException: The found tag instance (ByteTag) cannot store Integer

Qué hay detrás: Los plugins reaccionan a eventos como entrar al servidor, hacer clic en el inventario o recibir daño. Si un plugin lanza una excepción, es decir, un error de Java, su procesamiento se cancela. Después de «to» aparecen el plugin y la versión, y antes el evento. «NoSuchMethodError» o «NoSuchFieldError» indica una versión del servidor no compatible. «IllegalArgumentException» puede significar, por ejemplo, un valor de color no válido o un tipo de dato inadecuado. Esto lo debe corregir el autor del plugin. El servidor sigue funcionando, pero la función afectada del plugin falla en ese evento.

Así lo solucionas:

  1. En la Consola, lee el nombre y la versión del plugin después de «to» y la línea de error que aparece debajo.
  2. Comprueba en Versión qué versión del servidor está en marcha y busca en la página del plugin una edición que la admita.
  3. Detén el servidor, instala la edición adecuada en Plugins y reinicia.
  4. Si el error persiste, comunícaselo al autor del plugin con la acción que lo provoca y el mensaje de error completo.

Bueno saber: Más información sobre «NoSuchMethodError» y «NoSuchFieldError»: El plugin no es compatible con la versión del servidor.

«Task … generated an exception»: una tarea del plugin falla en segundo plano

Así se ve el mensaje:

[<Plugin>] Task #<Número> for <Plugin> v<Versión> generated an exception
java.lang.IllegalArgumentException: missing required data class java.lang.Float
java.lang.IllegalArgumentException: WATER isn't an item

Qué hay detrás: Los plugins programan tareas (tasks), por ejemplo para partículas, hologramas o el guardado de datos. Pueden ejecutarse una sola vez o de forma periódica. Una tarea se ha interrumpido con un error de Java, una excepción. Si se repite constantemente, el plugin suele no ser compatible con la versión del servidor, por ejemplo tras una actualización. También los valores no válidos en el plugin pueden provocar el error. El servidor sigue funcionando, pero falla una función del plugin y la consola se llena con las repeticiones.

Así lo solucionas:

  1. Lee el nombre del plugin después de «for» y la línea de error que aparece debajo.
  2. Comprueba en Plugins si hay una edición más reciente adecuada para la versión de tu servidor. Detén el servidor, instálala y reinicia.
  3. Si no hay una edición adecuada, detén el servidor y mueve el archivo .jar en Archivos desde plugins/ a una carpeta aparte. Después reinicia. Los errores continuos pueden ralentizar el servidor.
  4. Comprueba en la Consola si el mensaje ya no aparece. Si sigue apareciendo con la edición actual, comunícaselo al autor.

Bueno saber: «missing required data class» indica que faltan datos de partículas; «WATER isn't an item» indica un objeto no válido. «NoSuchMethodError» o «NoSuchFieldError» señala una incompatibilidad de versiones.

«Exception … executing task»: una tarea o un comando del plugin se cancela

Así se ve el mensaje:

[Essentials] Command <Comando> failed:
[<Plugin>] Plugin <Plugin> v<Versión> generated an exception while executing task <Número>
[MythicMobs] [SCHEDULER] Exception thrown whilst executing task

Qué hay detrás: Un plugin se ha interrumpido durante un comando o una tarea programada con una excepción, es decir, un error de Java. El servidor sigue funcionando, pero la función afectada del plugin no. La causa aparece debajo y, en caso de errores anidados, tras «Caused by». «Cannot perform command async» significa que un plugin ejecuta un comando de forma no permitida desde un hilo en segundo plano, una línea de trabajo paralela. Esto lo debe corregir el autor del plugin.

Así lo solucionas:

  1. Busca debajo del mensaje la línea «Caused by» o la primera línea con «Exception» o «Error».
  2. Identifica el plugin a partir del mensaje o de las líneas «at», la cadena de llamadas hasta el error. Allí puede aparecer <Plugin>.jar.
  3. Actualiza el plugin en Plugins a una edición para la versión de tu servidor. Detén el servidor antes de reemplazar los archivos y reinícialo después.
  4. Repite el comando u observa la siguiente ejecución de la tarea. Si el error persiste, comunícaselo al autor con la acción, la hora y el mensaje completo.

Bueno saber: «NoSuchMethodError», «NoSuchFieldError» o «NoSuchFieldException» significa que falta un método o un campo necesario. Comprueba la versión del servidor que admite el plugin y sus dependencias; necesitas ediciones que sean compatibles entre sí.

ClassCastException: un mod o plugin espera un tipo de datos distinto

Así se ve el mensaje:

java.lang.ClassCastException: class <PackageA>.<ClassA> cannot be cast to class <PackageB>.<ClassB>
Cannot load key=<Entry>, type=<DataType> in config=<Configuration>

Qué hay detrás: Un mod o un plugin espera un tipo de datos distinto del que entrega un componente implicado. Esto ocurre, por ejemplo, cuando se ha actualizado un mod y otro mod dependiente no. El error también puede aparecer al leer la configuración de un mod, como en el segundo ejemplo con la ClassCastException posterior. A menudo solo falla la función afectada, por ejemplo la carga de datos de botín o de una entrada de configuración.

Cómo solucionarlo:

  1. Lee el mensaje completo en logs/latest.log en Archivos. Los nombres de paquete que aparecen antes de los nombres de clase ayudan a identificar los mods o plugins implicados; java.lang.String, en cambio, designa el tipo de datos de Java para texto.
  2. Comprueba qué componente se actualizó por última vez. Pon los mods o plugins implicados en versiones que sean compatibles entre sí: actualízalos juntos o vuelve al estado anterior.
  3. Si usas un Modpack, actualiza todo el modpack en lugar de mods individuales.
  4. Si se menciona una entrada de configuración, compruébala con la documentación de la versión instalada del mod.
  5. Reinicia y repite el proceso.

Más información sobre conflictos de mods: Errores de mods en Forge, NeoForge y Fabric.

ArrayIndexOutOfBoundsException: acceso a una entrada de lista inexistente

Así se ve el mensaje:

java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.ArrayIndexOutOfBoundsException: Index -3 out of bounds for length 16
Caught exception during event FMLCommonSetupEvent dispatch for modid <Mod>

Qué hay detrás: Un plugin o un mod accede a una posición no válida de un array, es decir, una lista de longitud fija. Java cuenta desde 0: con una longitud de 3 solo existen las posiciones 0 a 2; las posiciones negativas tampoco son válidas. Con frecuencia faltan argumentos de comandos o valores de configuración, o un plugin antiguo lee mal la versión del servidor. Los ejemplos afectan además al procesamiento de datos de mundo de Geyser y al inicio de los mods; según el punto donde ocurra, falla una función o no se completa el inicio.

Cómo solucionarlo:

  1. Lee las líneas de error en la Consola o en Archivos dentro de logs/latest.log. Las líneas «at» que aparecen debajo muestran la cadena de llamadas, también llamada stacktrace; busca en ella el plugin o el mod afectado.
  2. Si el error apareció con un comando, comprueba sus argumentos obligatorios. Si has cambiado la configuración tú mismo, compara los valores con la plantilla o con una copia de seguridad.
  3. Actualiza el plugin afectado en Plugins o el mod en Mods a una versión que encaje con el servidor y el cargador. El cargador es el que carga los mods. Reinicia.
  4. Si el error persiste, envía al autor el mensaje de error junto con la cadena de llamadas y la acción que lo provoca.

El archivo de configuración de un plugin es defectuoso.

NumberFormatException: un texto debería ser un número

Así se ve el mensaje:

java.lang.NumberFormatException: For input string: "%vault_eco_balance_fixed%"
java.lang.NumberFormatException: For input string: "craftbukkit"

Qué hay detrás: El juego, un mod o un plugin quiso leer un valor de texto como número, y el texto no era un número. Entre las comillas aparece lo que llegó realmente. La causa puede ser una configuración, un valor de datos inesperado o un error de versión o de programa. Dos casos se reconocen por el valor: un marcador de posición con signo de porcentaje, como el de arriba, no se ha sustituido. Normalmente falta entonces la extensión adecuada de PlaceholderAPI, el plugin que rellena esos marcadores, o el plugin que proporciona el valor. Una palabra como craftbukkit indica que un plugin antiguo lee mal la versión del servidor.

Cómo solucionarlo:

  1. Revisa el stacktrace completo y actualiza el componente que se menciona en él.
  2. Si se trata de un marcador de posición: prueba en el juego con /papi parse me <marcador> si devuelve un valor. Si no, instala la extensión de PlaceholderAPI adecuada, por ejemplo con /papi ecloud download <nombre>, y cárgala con /papi reload.
  3. Si el mensaje menciona un archivo o un ajuste, compara el valor con la configuración predeterminada del plugin.
  4. Reinicia y vuelve a ejecutar la acción.

ArrayIndexOutOfBoundsException sin más detalles

Así se ve el mensaje:

[<Plugin>] Error occurred while loading item: 2
java.lang.ArrayIndexOutOfBoundsException

Qué hay detrás: Un plugin o un mod ha usado un índice de lista no válido, como en la sección anterior. Aquí, sin embargo, faltan el índice y la longitud. Esto ocurre cuando el mismo error se produce con mucha frecuencia: entonces Java omite los detalles por motivos de rendimiento. La línea anterior suele indicar qué plugin quería hacer qué, en el ejemplo cargar una entrada. La primera línea del stacktrace de debajo, si existe, nombra al causante.

Cómo solucionarlo:

  1. Lee la línea inmediatamente anterior al mensaje. Ahí suele aparecer el plugin entre corchetes.
  2. Lee la primera línea del stacktrace bajo el mensaje.
  3. Si faltan ambas, busca en logs/latest.log, más arriba, la primera aparición. Ahí el error suele estar aún completo. Los registros antiguos están comprimidos en la carpeta logs/.
  4. Actualiza el plugin o el mod mencionado primero. Si la línea anterior nombra una entrada concreta, revísala en la configuración del plugin.
  5. Si el error persiste, comunícaselo al autor.

ExceptionInInitializerError: no se puede inicializar la clase de un plugin o mod

Así se ve el mensaje:

Exception in thread "ForkJoinPool-3-worker-1" java.lang.ExceptionInInitializerError
Caused by: <Tipo de error>: <Mensaje>

Qué hay detrás: Java inicializa cada clase, es decir, cada componente de un programa, una sola vez la primera vez que se usa. Justo en ese momento ha fallado una clase de un plugin o de un mod. Después queda inutilizable durante esa ejecución del servidor, por eso a menudo siguen más errores como «NoClassDefFoundError» con el mismo nombre de clase. La causa real y, normalmente, también el plugin o el mod afectado los indica la cadena «Caused by» que aparece debajo. Según dónde ocurra, deja de funcionar una función o el plugin o el mod no se carga en absoluto.

Cómo solucionarlo:

  1. En la Consola o en logs/latest.log, lee la primera línea «Caused by» bajo el mensaje.
  2. A partir de las líneas «at» que hay debajo, identifica el plugin o el mod, por ejemplo por el nombre del archivo con .jar.
  3. Actualízalo o sustitúyelo por una versión que encaje con la versión de tu servidor y con tu software de servidor.
  4. Reinicia el servidor. La clase solo se inicializa de nuevo en el próximo arranque.

Si tienes dudas con las versiones, te ayuda esto: El plugin no es compatible con la versión del servidor.

Error interno en un plugin, por ejemplo al guardar

Así se ve el mensaje:

[MultiWorld] ERROR HAPPEND: <Mensaje>
Unable to save player profile for <Jugador>
<Plugin> v<Versión> generated an exception whilst handling plugin message

Qué hay detrás: Un plugin ha encontrado un error en una tarea propia, por ejemplo al guardar, al procesar un mensaje o al iniciarse. Los mensajes de plugin son paquetes de datos que, por ejemplo, un proxy como BungeeCord o Velocity intercambia con el servidor. El nombre del plugin aparece en el mensaje entre corchetes o al principio de la línea. Según el error, solo falla esa acción o el plugin se desactiva. Si se trata de guardar, ocúpate pronto para no perder datos.

Cómo solucionarlo:

  1. Lee el nombre del plugin y las líneas justo debajo del mensaje en la Consola.
  2. Actualiza el plugin en Plugins y reinicia.
  3. Si el error persiste, crea una copia de seguridad, quita el plugin como prueba y comprueba si el mensaje desaparece.
  4. Comunica el error al autor del plugin con las líneas de la consola.

Si el guardado falla repetidamente: El plugin no puede guardar la base de datos o los archivos.

Informe de error de Skript con #!#!: un script no se carga

Así se ve el mensaje:

Warning: This command deletes or removes game content. Create a backup first and check the command’s target.

#!#! Current node: <Línea del archivo .sk>
#!#! End of Error.

Qué hay detrás: Skript es un plugin con el que escribes funciones del servidor en archivos de texto sencillos con la extensión .sk. Si detecta un error grave al cargar un script o un addon, escribe un informe cuyas líneas empiezan todas por #!#!. Causas frecuentes: un addon como skript-reflect o SkBee no es compatible con la versión de Skript instalada, o se ha sustituido un archivo de plugin con el servidor en marcha. En ese caso aparece «zip file closed» en el informe. El script afectado no funciona, pero el servidor sigue en marcha.

Cómo solucionarlo:

  1. En el informe, lee la línea «Current node» (indica el archivo .sk afectado) y la línea «Caused by».
  2. Comprueba en las páginas de los proyectos qué versiones de los addons encajan con tu versión de Skript, y lleva Skript y los addons a versiones compatibles entre sí.
  3. Sustituye los archivos de plugin solo con el servidor detenido y reinícialo después.
  4. Carga el script con /sk reload <archivo> y lee la salida en la Consola.

Conviene saber: Los scripts están en Archivos, en la carpeta plugins/Skript/scripts/. Haz una copia de un archivo antes de modificarlo.

IndexOutOfBoundsException: «must be less than size»

Así se ve el mensaje:

Caused by: java.lang.IndexOutOfBoundsException: index (1) must be less than size (1)

Qué hay detrás: El juego, un mod o un plugin ha consultado una entrada de lista que no existe. «index (1) must be less than size (1)» significa: la lista tiene exactamente una entrada, la número 0, y se pidió la número 1. Puede estar implicada una configuración, pero el mensaje por sí solo no lo demuestra. Si delante pone «Caused by:», es la causa de un error notificado más arriba. Lo que deja de funcionar lo muestra ese mensaje superior.

Cómo solucionarlo:

  1. Lee el stacktrace completo en logs/latest.log, incluido el mensaje de error de encima.
  2. Busca la primera línea «at» que nombre un componente externo, es decir, un plugin o un mod en lugar de Java o una biblioteca como java.base o com.google.common.
  3. Actualiza ese componente y reinicia.
  4. Solo si el contexto apunta a una lista concreta, por ejemplo entradas de menú o recompensas, revisa su configuración en busca de entradas que falten o estén vacías.

«Asynchronous Save Players»: el plugin guarda desde el hilo equivocado

Así se ve el mensaje:

Asynchronous Save Players! Blocking thread until it returns
java.lang.IllegalStateException
	at io.papermc.paper.util.MCUtil.ensureMain(MCUtil.java:<Línea>)

Qué hay detrás: Un plugin ha iniciado el guardado de los datos de todos los jugadores desde un hilo en segundo plano, es decir, desde un hilo de trabajo paralelo al hilo principal que calcula el mundo. Esto no está previsto. Paper bloquea el hilo hasta que termina el guardado y escribe esta advertencia. Se trata de un error del plugin que puede causar pequeños tirones. El servidor sigue funcionando.

Así lo solucionas:

  1. Lee las líneas «at» que hay debajo del mensaje. Las primeras pertenecen a Paper y Minecraft (io.papermc, net.minecraft); lo que buscas es la primera línea «at» que menciona un plugin.
  2. Actualiza ese plugin en Plugins y reinicia.
  3. Si la advertencia persiste, informa del error al autor del plugin con el mensaje completo.

Bueno saber: Puedes tomarte con calma una advertencia aislada. Si aparece con regularidad y los jugadores notan tirones, merece la pena actualizar.

«Unhandled exception executing command»: un comando de un plugin se interrumpe

Así se ve el mensaje:

org.bukkit.command.CommandException: Unhandled exception executing command '<comando>' in plugin <Plugin> v<Versión>
Caused by: <Tipo de error>: <Mensaje>

Qué hay detrás: Un plugin ha lanzado un error al ejecutar uno de sus comandos. El comando y el plugin aparecen en el mensaje. Normalmente el plugin no es compatible con la versión del servidor o con otro plugin del que depende. Quien ha escrito el comando suele ver en el chat solo un aviso general de un error interno. El comando no se ha ejecutado, pero el servidor sigue en marcha.

Cómo solucionarlo:

  1. Lee la línea «Caused by» bajo el mensaje.
  2. Comprueba tu versión del servidor en Versión y actualiza el plugin en Plugins a una versión adecuada para ella.
  3. Si la línea de error menciona otro plugin del que depende el plugin, actualízalo también a una versión compatible.
  4. Reinicia y prueba el comando. Si el error sigue apareciendo, repórtalo al autor del plugin con esa línea.

Más sobre dependencias: El plugin necesita otro plugin.

Error de comando con «[ACF]» en el registro

Así se ve el mensaje:

[<Plugin>] [ACF] Exception in command: <comando>
[<Plugin>] [ACF] java.lang.NoSuchMethodError: <Método>

Qué hay detrás: Muchos plugins crean sus comandos con una biblioteca ya hecha, el Aikar Command Framework (ACF). Si un comando se interrumpe con una excepción, ACF muestra el error junto con el stacktrace, con el nombre del plugin delante de cada línea. Por tanto, el nombre del primer corchete es el plugin afectado, no ACF. Si en la salida aparece «IncompatibleClassChangeError» o «NoSuchMethod», el plugin no es compatible con la versión del servidor. El comando no se ha ejecutado, pero el servidor sigue funcionando.

Así lo solucionas:

  1. Lee el nombre del plugin en el primer corchete y la primera línea de error con «Exception» o «Error».
  2. Actualiza el plugin en Plugins a una versión para la versión de tu servidor.
  3. Reinicia y prueba el comando.
  4. Si el error persiste, infórmalo al autor del plugin con la primera línea de error.

Bueno saber: No tienes que instalar ni actualizar ACF por tu cuenta. Viene incluido en cada plugin.

GravesX: error en una tarea en segundo plano

Así se ve el mensaje:

[GravesX] Async task for GravesX v<Versión> generated an exception
java.lang.NullPointerException: Cannot invoke "<Método>" because "version2" is null

Qué hay detrás: GravesX crea una tumba con los objetos de un jugador cuando muere. El plugin lanza una NullPointerException en una tarea en segundo plano, por ejemplo al comparar dos números de versión cuando falta un valor («version2»). Es un error del propio plugin, no un problema del servidor ni del alojamiento. El servidor sigue funcionando con normalidad.

Así lo solucionas:

  1. Actualiza GravesX en Plugins a la última versión y reinicia.
  2. Comprueba en la Consola si el mensaje vuelve a aparecer.
  3. Si el error continúa, infórmalo al proyecto GravesX con el mensaje completo.
  4. Si quieres desactivar el plugin como prueba hasta que haya una corrección, vacía antes las tumbas abiertas. Sin el plugin no se pueden abrir de la forma habitual.

FastAsyncWorldEdit: el comando ha fallado internamente

Así se ve el mensaje:

An unexpected error while handling a FastAsyncWorldEdit command
java.lang.NullPointerException

Qué hay detrás: FastAsyncWorldEdit (FAWE) es una variante rápida de WorldEdit con la que editas grandes áreas de una sola vez. Con un comando, FAWE se ha encontrado con un valor que faltaba. La operación no se ha ejecutado por completo, así que el cambio puede haber llegado al mundo solo en parte. El servidor sigue funcionando.

Así lo solucionas:

  1. Comprueba en el juego qué ha cambiado el comando. Con //undo puedes deshacer el último paso si hace falta.
  2. Actualiza FAWE en Plugins a una edición para la versión de tu servidor y reinicia.
  3. Ejecuta el comando de nuevo.
  4. Si el error persiste, informa a los desarrolladores de FAWE con el stacktrace completo y el comando exacto.

Fundamentos para deshacer cambios: WorldEdit: construir y deshacer.

Bueno saber: No instales FAWE además del WorldEdit normal. Los dos juntos no son compatibles; usa solo uno.

LibreLogin: el comando ha fallado internamente

Así se ve el mensaje:

[LibreLogin] An unexpected exception occurred while performing command …

Qué hay detrás: LibreLogin es un plugin de inicio de sesión: los jugadores se identifican con una contraseña, a menudo en servidores en modo offline. Al ejecutar uno de sus comandos, por ejemplo para iniciar sesión o registrarse, se ha interrumpido con una excepción inesperada. Para el jugador el comando falla. Si afecta al inicio de sesión, no puede avanzar hasta que el comando vuelva a funcionar. El servidor en sí sigue funcionando.

Así lo solucionas:

  1. Lee en la Consola la excepción que hay debajo del mensaje y anota qué comando era.
  2. Actualiza LibreLogin en Plugins y reinicia.
  3. Prueba el comando de nuevo con un jugador.
  4. Si el error persiste, informa de la excepción junto con el comando al autor del plugin.

Si la excepción menciona una base de datos: El plugin no puede abrir su base de datos.

LibreLogin: el manejador de red está registrado por duplicado

Así se ve el mensaje:

java.lang.IllegalArgumentException: Duplicate handler name: pe-decoder-librelogin

Qué hay detrás: Cada conexión de un jugador pasa por una cadena de pasos de procesamiento, el pipeline de red. LibreLogin o la biblioteca PacketEvents intenta incorporar por segunda vez el mismo paso, un decoder para los datos entrantes. Entonces las conexiones nuevas pueden fallar. Los desencadenantes típicos son dos archivos de LibreLogin en la carpeta de plugins, versiones incompatibles de LibreLogin y PacketEvents o una recarga de los plugins con el servidor en marcha.

Así lo solucionas:

  1. En Archivos, abre la carpeta plugins/ y comprueba que LibreLogin solo aparezca una vez. Elimina las copias antiguas después de crear una copia de seguridad.
  2. Actualiza LibreLogin y, si lo tienes instalado, PacketEvents al mismo tiempo.
  3. Detén el servidor y reinícialo por completo. Una recarga con /reload o con un gestor de plugins no basta aquí.
  4. Prueba la entrada con un jugador.

Más sobre archivos duplicados: El archivo del plugin está dañado o duplicado.

LightAntiCheat-Plus: error en una comprobación de movimiento

Así se ve el mensaje:

[LightAntiCheat-Plus] Exception in event bus subscription: <Check>
java.lang.UnsupportedOperationException: remove

Qué hay detrás: LightAntiCheat-Plus es un plugin anti-cheat que, entre otras cosas, comprueba los movimientos de los jugadores. Una de sus comprobaciones intenta vaciar una lista que no se puede modificar. Es un error del plugin. La comprobación afectada puede dejar de funcionar o dar resultados falsos, es decir, pasar por alto trampas o sospechar injustamente de jugadores honestos. El servidor sigue funcionando.

Así lo solucionas:

  1. Actualiza LightAntiCheat-Plus en Plugins y reinicia.
  2. Si el mensaje sigue apareciendo, desactiva hasta la corrección la comprobación afectada SpeedD en la configuración del plugin. La encuentras en Archivos, en la carpeta del plugin dentro de plugins/. Haz antes una copia del archivo.
  3. Reinicia y comprueba en la Consola que el mensaje ya no aparezca.
  4. Vuelve a activar la comprobación en cuanto haya una versión corregida.

Conviene saber: Mientras aparezca el mensaje, trata con cautela los casos sospechosos por movimiento.

MagicSpells informa de un error en un hechizo

Así se ve el mensaje:

[MagicSpells] AN EXCEPTION HAS OCCURED:
[MagicSpells] This error has been saved in the errors folder.
Error saving spellbook for player '<Player>'

Qué hay detrás: MagicSpells es un plugin para hechizos personalizados. Informa de un error al ejecutar o guardar hechizos, a menudo por una entrada de su configuración que esta versión no entiende. Los efectos funcionan mediante la biblioteca EffectLib; los mensajes con «Unexpected EffectLib Error» se refieren a esos efectos. Además, MagicSpells guarda un informe en la carpeta plugins/MagicSpells/errors. Si falla el guardado del libro de hechizos (spellbook), no se guarda el progreso de ese jugador.

Así lo solucionas:

  1. En Archivos, abre la carpeta plugins/MagicSpells/errors y el informe más reciente. Indica el hechizo y el ajuste.
  2. Revisa ese ajuste en tus archivos de hechizos, por ejemplo por errores de escritura o valores de una versión anterior de MagicSpells. Haz antes una copia del archivo.
  3. Mantén MagicSpells y EffectLib actualizados y compatibles con la versión del servidor.
  4. Reinicia y prueba el hechizo.

SinglePlayerSleep: dormir en la cama no funciona

Así se ve el mensaje:

[SinglePlayerSleep] INTERNAL ERROR: Unable to process PlayerBedEnterEvent

Qué hay detrás: SinglePlayerSleep hace que pase la noche cuando duerme un solo jugador, en lugar de que tengan que acostarse todos. Al entrar en una cama, el plugin ha fallado. La función de dormir puede dejar de funcionar en ese intento y la noche no se salta. Normalmente la versión del plugin no coincide con la versión de Minecraft. El servidor sigue funcionando.

Así lo solucionas:

  1. Comprueba en Versión qué versión de Minecraft se está ejecutando.
  2. Actualiza SinglePlayerSleep en Plugins a una versión para esa versión y reinicia.
  3. Prueba en el juego: acuéstate de noche y comprueba si pasa la noche.
  4. Si el error persiste, comunica la excepción que aparece bajo el mensaje al autor del plugin.

Más información: Reglas de juego de Minecraft explicadas.

Conviene saber: Las versiones más recientes de Minecraft tienen una regla de juego propia que define qué porcentaje de jugadores debe dormir. Puede sustituir al plugin.

PacketEvents no puede engancharse a la conexión

Así se ve el mensaje:

PacketEvents failed to add a decoder to the netty pipeline

Qué hay detrás: PacketEvents es una biblioteca con la que otros plugins, por ejemplo de anti-cheat o de inicio de sesión, leen paquetes de red. Para ello incorpora un paso propio, un decoder, en el pipeline de red de cada conexión. Netty es la biblioteca de red con la que el servidor gestiona las conexiones. La incorporación ha fallado: otro manejador de red o una versión incompatible de PacketEvents bloquea el orden esperado. Los plugins que se basan en PacketEvents no funcionan correctamente para esa conexión.

Así lo solucionas:

  1. Actualiza al mismo tiempo PacketEvents, Geyser y Floodgate, así como los plugins de inicio de sesión y anti-cheat, a versiones para la versión de tu servidor.
  2. En Archivos, comprueba en la carpeta plugins/ que ningún archivo esté duplicado.
  3. Detén el servidor y reinícialo por completo, sin recargar con el servidor en marcha.
  4. Prueba la entrada con Java y, si usas Geyser, también con Bedrock.

Para jugadores de Bedrock: Bedrock y Geyser: mensajes en el log.

StringIndexOutOfBoundsException: valor de texto vacío o demasiado corto

Así se ve el mensaje:

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

Qué hay detrás: Un plugin o un mod quería leer un carácter concreto de un texto, por ejemplo el primer carácter de un prefijo. Pero el texto es más corto; con «length 0» incluso está vacío. Con frecuencia, un valor de configuración esperado está vacío, como un prefijo, un color o un nombre que solo está escrito como ''. El servidor sigue funcionando; la función que necesita el texto deja de funcionar.

Así lo solucionas:

  1. En el stacktrace, lee la primera línea que contenga el nombre de un plugin o de un mod.
  2. En Archivos, abre la configuración de ese plugin en la carpeta plugins/<Plugin>/ y busca valores vacíos como '' o entradas sin valor. Haz antes una copia del archivo.
  3. Introduce un valor válido o usa el valor predeterminado de la plantilla del plugin.
  4. Actualiza el plugin y reinicia.

Más sobre ajustes erróneos: El archivo de configuración de un plugin es incorrecto.

«NoSuchFieldException: childHandler»: el plugin de red no es compatible con el servidor

Así se ve el mensaje:

java.lang.NoSuchFieldException: childHandler

Qué hay detrás: Netty es la biblioteca de red con la que el servidor acepta conexiones. Algunos plugins acceden directamente a partes internas de ella para engancharse a las conexiones. Aquí, un plugin de red busca el campo interno «childHandler», que no está disponible en la versión del servidor o de Netty instalada. Es decir, el plugin está compilado para otra build del servidor. Normalmente afecta a plugins de red, proxy o protocolo; su función deja de funcionar.

Así lo solucionas:

  1. Lee el stacktrace debajo del mensaje y busca el primer plugin de red, proxy o protocolo, por ejemplo ViaVersion, ProtocolLib o Geyser.
  2. Comprueba en Versión qué versión del servidor está en ejecución. La versión exacta del software del servidor (build) también aparece en las primeras líneas de logs/latest.log.
  3. Actualiza el plugin encontrado a una versión para esta build del servidor y reinicia.
  4. Si todavía no existe una versión adecuada, desactiva el plugin temporalmente hasta que el autor lo actualice.

Más detalles: El plugin no es compatible con la versión del servidor.

Las sugerencias con Tab de un comando de plugin no funcionan

Así se ve el mensaje:

Unhandled exception during tab completion for command '<Comando>' in plugin <Plugin>

Qué hay detrás: Al pulsar la tecla Tab, Minecraft pregunta al plugin responsable por las posibles sugerencias. En ese momento falla la función de sugerencias del plugin. El servidor sigue funcionando; solo faltan las sugerencias del comando afectado. El rastro de error que aparece debajo, el llamado stacktrace, muestra las llamadas de programa implicadas.

Cómo solucionarlo:

  1. Lee el mensaje completo en la Consola o en Archivos dentro de logs/latest.log. Anota el plugin, el comando y el primer mensaje de error concreto que aparece debajo.
  2. Comprueba tu versión del servidor en Versión e instala en Plugins una edición adecuada del plugin mencionado.
  3. Reinicia el servidor por completo y prueba de nuevo el mismo comando con la tecla Tab.
  4. Si el error persiste, envía al autor del plugin el rastro de error completo y describe en qué punto fallan las sugerencias.

StackOverflowError al evaluar una regla de búsqueda

Así se ve el mensaje:

Exception in thread "<Tarea en segundo plano>" java.lang.StackOverflowError

Qué hay detrás: Una expresión regular es una regla de búsqueda para texto, por ejemplo para filtros de comandos. Al comprobar esta regla, Java necesita demasiadas llamadas anidadas y llena la pila de llamadas. La tarea en segundo plano indicada se termina y su trabajo queda incompleto; el servidor sigue funcionando. StackOverflowError es un error distinto de que la memoria de Java esté llena.

Cómo solucionarlo:

  1. Abre el rastro de error completo en la Consola o en Archivos dentro de logs/latest.log. Busca el plugin responsable a partir del nombre del hilo y de las llamadas del plugin.
  2. Haz una copia de seguridad de sus ajustes y revisa las reglas de búsqueda o de comandos configurables. Simplifica la regla que provoca el fallo, si la has configurado tú.
  3. Actualiza el plugin en Plugins a una edición adecuada y reinicia el servidor por completo.
  4. Si la regla está integrada de forma fija, informa al autor con el rastro de error completo y la entrada con la que ocurre.

Paper bloquea «entity add» desde un hilo en segundo plano

Así se ve el mensaje:

Thread <Hilo> failed main thread check: entity add

Qué hay detrás: Paper comprueba si los cambios en el mundo del juego se ejecutan en el hilo correcto. Un hilo es una línea de ejecución propia del programa. Aquí una tarea en segundo plano intenta añadir una entidad al mundo y la comprobación de protección la detiene. La acción afectada falla; el servidor sigue funcionando.

Cómo solucionarlo:

  1. Abre el rastro de error completo en logs/latest.log, en la Consola o en Archivos. El mensaje abreviado suele mostrar solo llamadas del servidor.
  2. Sigue leyendo hasta la primera llamada del plugin y anota qué acción provocó el error.
  3. Instala en Plugins una edición de este plugin adecuada para la versión de tu servidor y reinicia el servidor por completo.
  4. Si el error sigue apareciendo, infórmale al autor del plugin con el rastro de error completo. La llamada del plugin debe trasladarse al hilo correcto.

Conviene saber: Deja activa la comprobación de protección. Desactivarla no soluciona el acceso erróneo al mundo.

El cálculo del botín falla por valores obligatorios que faltan

Así se ve el mensaje:

java.lang.IllegalArgumentException: Missing required parameters: [<Parameter>]

Qué hay detrás: Minecraft necesita información sobre la situación concreta para el botín y la entrega de objetos. La función que realiza la llamada no proporciona aquí todos los valores obligatorios. Por eso este cálculo se interrumpe. Puedes saber qué acción está afectada por el informe de error completo y por el momento en que aparece el mensaje.

Así lo solucionas:

  1. Abre el mensaje en la Consola o en Archivos dentro de logs/latest.log, incluida la lista de llamadas que aparece a continuación. Esta lista se llama stacktrace.
  2. Busca en ella el primer plugin implicado y anota qué acción provoca el error.
  3. Actualiza ese plugin en Plugins y comprueba en Versión si tu software de servidor es compatible.
  4. Prueba de nuevo la misma acción. Si el error continúa, envía el informe completo al proyecto responsable.

Oritech falla en una acción con un objeto sobre el bloque

Así se ve el mensaje:

Failed to handle packet <Package>, suppressing error
java.util.NoSuchElementException: null
    at <Package>.ItemFluidApi.tryFluidBlockItemInteraction(<File>:<Line>)

Qué hay detrás: El mod Oritech procesa una acción en la que se usa un objeto sobre un bloque. Su gestión de fluidos intenta leer la primera entrada de una lista vacía. Java informa de ello con una NoSuchElementException, es decir, un acceso a una entrada que no existe. La acción se cancela; el servidor sigue procesando otras tareas.

Así lo solucionas:

  1. Anota el objeto utilizado, el bloque y la hora. Crea una copia en Copias de seguridad antes de hacer cambios.
  2. Comprueba en Mods si hay una actualización adecuada de Oritech. La versión de Minecraft, el cargador y, en el caso de un Modpack, las versiones de mods previstas para este deben coincidir.
  3. Si el error sigue apareciendo, evita por ahora la acción que lo provoca. Infórmale al autor de Oritech junto con el rastro de error completo de logs/latest.log.

BeautyQuests: El progreso de las misiones no se actualiza en el marcador lateral

Así se ve el mensaje:

[BeautyQuests.ScoreboardManager] Failed to refresh line {quest_advancement} for player <Player>
java.util.NoSuchElementException: No value present

Qué hay detrás: BeautyQuests inserta en el marcador lateral un marcador de posición para el progreso de la misión. Falta un valor numérico que el plugin espera. La línea afectada del marcador no se actualiza, pero el servidor sigue funcionando.

Así lo solucionas:

  1. Comprueba en la Consola o en Archivos, dentro de logs/latest.log, con qué misión aparece el mensaje. El rastro del error que aparece debajo muestra las llamadas del plugin implicadas.
  2. Haz una copia de la configuración del plugin y actualiza BeautyQuests en Plugins a una versión compatible con la versión de tu servidor. Reinicia el servidor por completo.
  3. Si el error persiste, elimina temporalmente en Archivos la línea del marcador con {quest_advancement} de la configuración de BeautyQuests.
  4. Informa al autor del plugin con el rastro del error completo y depurado, y con la configuración de la misión afectada. Elimina los datos personales antes de compartirlo.

TAB usa un objeto descartado después de recargar

Así se ve el mensaje:

[TAB] java.lang.IllegalStateException: This instance got discarded because plugin was reloaded. Obtain a new instance.

Qué hay detrás: Al recargar, TAB ha reemplazado objetos internos. Otra acción sigue accediendo a un objeto antiguo que TAB ya ha descartado. Por eso se interrumpe el registro del marcador de posición afectado y puede que falten partes de la visualización. El servidor sigue funcionando.

Así lo solucionas:

  1. Reinicia el servidor por completo y revisa después la Consola. Un reinicio completo recarga conjuntamente los componentes implicados.
  2. Si el mensaje vuelve a aparecer, haz una copia de la configuración y actualiza TAB y sus extensiones a versiones compatibles entre sí. En Fabric usas Mods; para archivos subidos por ti mismo, Archivos.
  3. Por ahora, usa reinicios completos. Anota qué acción vuelve a provocar el mensaje.
  4. Si los errores continúan, entrega al autor de TAB el rastro del error depurado y las versiones instaladas.

Un plugin deja tareas en segundo plano en ejecución al recargar o detener

Así se ve el mensaje:

Nag author: '<Author>' of '<Plugin>' about the following: This plugin is not properly shutting down its async tasks when it is being shut down.

Qué hay detrás: El plugin mencionado no finaliza correctamente sus tareas asíncronas. Son trabajos que se ejecutan al margen del bucle principal del servidor. Tras una recarga, las tareas antiguas y nuevas del plugin pueden entrar en conflicto; al detener el servidor de forma normal todavía pueden aparecer mensajes de error.

Así lo solucionas:

  1. Comprueba en la Consola qué plugin se menciona y si el mensaje aparece al recargar o al detener el servidor normalmente.
  2. Si apareció tras una recarga, reinicia el servidor por completo. Después, usa reinicios completos para los cambios en los plugins.
  3. Haz una copia de la configuración del plugin y actualiza el plugin afectado en Plugins a una versión adecuada.
  4. Si el mensaje sigue apareciendo en paradas normales, infórmalo al autor del plugin con las líneas de registro correspondientes y la versión de tu servidor.

Paper bloquea un acceso a POI desde un hilo en segundo plano

Así se ve el mensaje:

[ca.spottedleaf.moonrise.common.util.TickThread] Thread failed main thread check: Accessing poi chunk off-main, context=<Thread context>

Qué hay detrás: POI significa «Point of Interest» (punto de interés) y designa lugares importantes, como los puestos de trabajo de los aldeanos. Un hilo en segundo plano intenta acceder a los datos correspondientes de una sección del mundo. Paper solo permite este acceso en el hilo de juego responsable y cancela la acción afectada.

Así lo solucionas:

  1. Abre en la Consola o en Archivos, dentro de logs/latest.log, el rastro del error completo. Son las líneas de llamadas bajo el mensaje; comprueba si aparece algún plugin.
  2. Crea una copia en Copias de seguridad. Actualiza Paper en Versión y los plugins implicados en Plugins a versiones compatibles entre sí.
  3. Reinicia el servidor por completo y observa si la misma acción vuelve a provocar el error.
  4. Si el mensaje persiste sin relación con ningún plugin, entrega a Paper el rastro del error depurado, la versión del servidor y los pasos para reproducirlo. Si se menciona un plugin, infórmalo a su autor.

Los datos de jugador de LuckPerms aún no están listos al entrar

Así se ve el mensaje:

Couldn't place player in world
java.lang.IllegalStateException: Capability has not been initialised

Qué hay detrás: La entrada falla por una consulta de permisos. La traza del error pasa por LuckPerms; su almacén de datos por jugador, la llamada Capability, aún no está listo en ese momento. Por ello, el jugador afectado no se coloca correctamente en el mundo.

Así lo solucionas:

  1. En la Consola o en logs/latest.log, lee los mensajes de LuckPerms anteriores al error y anota los mods implicados.
  2. Comprueba en Mods si LuckPerms y el mod que realiza la consulta son compatibles con tu versión de NeoForge y de Minecraft. Usa ediciones compatibles entre sí.
  3. Reinicia el servidor por completo y prueba de nuevo la entrada. Si el error persiste, comunícalo a los autores de los mods implicados con la traza completa del error y los datos de versión.

Una consulta de fluidos no encuentra el caldero esperado

Así se ve el mensaje:

java.lang.IllegalStateException: Unexpected error: no cauldron at location BlockPos{<Posición>}

Qué hay detrás: Una interfaz de fluidos espera un caldero en la posición consultada, pero encuentra otro estado de bloque. En la traza del error, Jade consulta esta interfaz para leer información de fluidos. La consulta afectada se cancela; por ello puede faltar información sobre ese bloque.

Así lo solucionas:

  1. Lee la traza completa del error en logs/latest.log y comprueba con qué acción de bloque vuelve a aparecer el mensaje.
  2. Crea una copia en Copias de seguridad. En Mods, iguala Jade, los mods de fluidos implicados y la versión de NeoForge a ediciones compatibles entre sí.
  3. Reinicia por completo y repite la acción. Si el error persiste, comunica la acción exacta y la traza del error a los autores implicados.

MoreRelics calcula un valor numérico no válido durante una acción de combate

Así se ve el mensaje:

Exception caught during firing event: max is NaN

Qué hay detrás: NaN significa «Not a Number», es decir, un valor de cálculo no válido. MoreRelics pasa este valor como límite superior a una comprobación numérica durante una acción de combate. La comprobación lo rechaza y se cancela el procesamiento del evento afectado; después, el servidor sigue procesando otros eventos.

Cómo solucionarlo:

  1. Lee en la Consola o en logs/latest.log el rastro de error completo y anota la acción que lo desencadena.
  2. Crea una copia de seguridad en Copias de seguridad. Comprueba en Mods una versión de MoreRelics compatible con tu Modpack y NeoForge.
  3. Reinicia por completo y prueba la misma acción. Si el error persiste, infórmale al autor con el rastro de error, la selección de mods y los objetos o efectos utilizados.

Citizens falla al enviar datos de paquetes por un valor vacío

Así se ve el mensaje:

java.lang.NullPointerException
    at Citizens-<Version>.jar//net.citizensnpcs.PacketEventsHook.<Method>(<File>:<Line>)

Qué hay detrás: Al enviar datos de paquetes, Citizens accede a través de su conexión con PacketEvents a un valor que falta. Java llama null a este valor vacío y se interrumpe con una NullPointerException. El procesamiento del paquete afectado falla; por ello, las actualizaciones de los NPC, es decir, personajes controlados por el ordenador, pueden quedar incompletas.

Cómo solucionarlo:

  1. Lee el rastro de error completo en logs/latest.log y anota con qué acción de NPC aparece el error.
  2. Guarda el estado actual en Copias de seguridad. Comprueba en Plugins las versiones de Citizens, PacketEvents y tu software de servidor que sean compatibles entre sí.
  3. Si es necesario, sustituye los archivos en Archivos, reinicia por completo y prueba la misma acción. Si el error persiste, informa al autor del rastro de error y de los datos de versión.

NovaSync no encuentra el asistente para las actualizaciones del sistema operativo

Así se ve el mensaje:

[NovaSyncPlugin] [os-updates] helper start failed subcmd=status err=IOException:Cannot run program "sudo": Exec failed, error: 2 (No such file or directory)

Qué hay detrás: NovaSync intenta iniciar un programa auxiliar externo para las actualizaciones del sistema operativo. Para ello, el plugin llama a sudo, un programa para ejecutar comandos con otros permisos de usuario. El entorno del servidor no encuentra este programa, por lo que fallan la preparación o la consulta de estado de la función de actualización. El servidor de juego sigue funcionando.

Cómo solucionarlo:

  1. Lee el mensaje completo en la Consola o en Archivos, dentro de logs/latest.log, y anota la hora.
  2. Consulta en la guía de tu versión instalada de NovaSync los requisitos para os-updates y el asistente necesario.
  3. Abre un ticket e indica la hora del mensaje y la versión del plugin para aclarar la disponibilidad del asistente en el entorno de tu servidor.

Conviene saber: El mensaje afecta a la función de actualización del sistema operativo de NovaSync, no a la actualización de tus plugins de Minecraft.

ProtocolLib no puede asignar un informe de error

Así se ve el mensaje:

[ProtocolLib] Error filtering reports: java.lang.IllegalArgumentException: Cannot find report name for Plugin %s tried to register listener for unknown packet %s

Qué hay detrás: ProtocolLib ayuda a otros plugins a procesar paquetes de red, es decir, los mensajes entre el servidor y el cliente del juego. Aquí, además, falla la asignación de un informe de diagnóstico. El informe se refiere al registro de un tipo de paquete desconocido. El servidor sigue funcionando; hay que revisar la función de paquetes afectada y su diagnóstico.

Cómo solucionarlo:

  1. Lee en la Consola o en logs/latest.log las líneas inmediatamente anteriores y posteriores al mensaje. Busca ahí el plugin y el tipo de paquete implicados.
  2. Comprueba las versiones de servidor compatibles con ProtocolLib y con este plugin. Actualiza ambos en Plugins a versiones adecuadas.
  3. Detén el servidor antes de sustituir los archivos y reinícialo por completo después. Vuelve a comprobar la función afectada.
  4. Si el mensaje persiste, envía al autor del plugin el bloque de error completo y las versiones utilizadas.

EliteMobs no puede activar su función de munición

Así se ve el mensaje:

[EliteMobs] Cannot enable native ammunition for <Connection>: java.util.NoSuchElementException: packet_handler

Qué hay detrás: EliteMobs intenta configurar su función nativa de munición para una conexión. Un handler es un paso de procesamiento interno para datos de red. El paso esperado con el nombre packet_handler falta en el lugar consultado. Por ello, esta función parcial no se activa; el servidor sigue funcionando.

Cómo solucionarlo:

  1. Lee en la Consola o en logs/latest.log los mensajes cercanos. Presta atención a errores anteriores durante el establecimiento de la conexión.
  2. Compara las versiones de servidor compatibles con EliteMobs con tu Versión. Comprueba también las dependencias indicadas por el autor.
  3. Detén el servidor y actualiza EliteMobs en Plugins a una versión adecuada. Después, reinicia el servidor por completo y prueba la función afectada.
  4. Si el error persiste, notifícalo al autor de EliteMobs con el bloque de error completo, la versión del servidor y la lista de plugins. Estos datos ayudan a acotar el paso de procesamiento que falta.

LuckPerms bloquea un inicio de sesión permitido de forma contradictoria

Así se ve el mensaje:

[LuckPerms] Player connection was re-allowed for <Player-ID>

Qué hay detrás: Durante una entrada al servidor, varios plugins han tomado decisiones contradictorias. LuckPerms bloquea la conexión permitida de nuevo para proteger su procesamiento de permisos. La entrada afectada falla; el servidor sigue funcionando.

Cómo solucionarlo:

  1. Lee en la Consola o en logs/latest.log los mensajes inmediatamente anteriores a la entrada fallida. Busca errores de carga de datos y mensajes de los plugins de inicio de sesión.
  2. Si se menciona un error de base de datos o de carga de datos, soluciónalo primero. Después comprueba qué plugin de inicio de sesión revoca un rechazo anterior.
  3. Actualiza los componentes afectados en Plugins a versiones compatibles entre sí y con la versión del servidor. Detén el servidor antes de la sustitución y reinícialo después.
  4. Prueba la entrada de nuevo. Si el conflicto persiste, envía a los autores de los plugins implicados el bloque de error completo y la lista de plugins.

Conviene saber: No desactives la comprobación de inicio de sesión para evitar el conflicto.

Apotheosis: una acción sobre un bloque falla por un objeto vacío

Así se ve el mensaje:

Failed to handle packet <Packet>, suppressing error
java.lang.IllegalArgumentException: Expected resource to be non-empty: minecraft:air [0]
at <Loader>/dev.shadowsoffire.apotheosis.affix.salvaging.<Call>

Qué hay detrás: Con una acción sobre un bloque, Apotheosis llega a su función de desmontaje. Al hacerlo, se pasa una pila de objetos vacía a la interfaz de transferencia de NeoForge, que exige que exista un objeto. Por eso la interacción se interrumpe, mientras que el servidor sigue funcionando. El stacktrace, es decir, la cadena de llamadas bajo el mensaje de error, pasa aquí por Apotheosis y NeoForge.

Cómo solucionarlo:

  1. Guarda el estado actual en Copias de seguridad. Anota qué acción sobre un bloque provoca el mensaje y evítala por ahora.
  2. Abre el mensaje completo en la Consola o a través de Archivos en logs/latest.log. Anota también las líneas anteriores al error.
  3. Comprueba en Mods si Apotheosis y los mods que necesita encajan con tu versión de Minecraft y de NeoForge. Si usas un Modpack, utiliza una versión del pack que sea coherente. Detén el servidor antes de sustituir los archivos y reinícialo después.
  4. Si el mensaje persiste, envía al autor del mod el registro de error completo, las versiones instaladas y la acción que lo provoca.

ProtocolLib: un plugin solicita el UUID de un jugador temporal

Así se ve el mensaje:

[<Plugin>] Unhandled exception occurred in onPacketSending(PacketEvent) for <Plugin>
java.lang.UnsupportedOperationException: The method getUniqueId is not supported for temporary players.

Qué hay detrás: ProtocolLib proporciona objetos de jugador temporales mientras se establece la conexión. El identificador único de cuenta UUID todavía no se puede consultar a través de este objeto. Aun así, un plugin lo intenta al enviar un paquete. Por ello, su manejador de paquetes, es decir, la función de procesamiento responsable, se interrumpe; el servidor sigue funcionando.

Cómo solucionarlo:

  1. Lee en la Consola qué plugin aparece mencionado después de «for». Guarda el registro completo del error de logs/latest.log.
  2. Comprueba en Plugins si este plugin y ProtocolLib son compatibles con la Versión de tu servidor. Utiliza ediciones que sean compatibles entre sí.
  3. Detén el servidor antes de reemplazar los archivos. Después, reinícialo por completo y vuelve a probar la entrada.
  4. Si el error persiste, comunícaselo al autor del plugin afectado con el registro completo del error, las versiones instaladas y la acción que lo provoca.

¿Tu mensaje no aparece aquí?

Lee el mensaje completo, incluidas las líneas anteriores. Ahí suele figurar lo que el plugin estaba intentando hacer. En el stacktrace, los nombres de archivo de las líneas „at“, por ejemplo <Plugin>.jar, y los nombres de paquete delatan el plugin o el mod. Las líneas con java.base, net.minecraft, org.bukkit o io.papermc pertenecen a Java y al servidor. Crea una copia de seguridad, actualiza al causante y reinicia. Si no avanzas, abre un ticket e indica la hora del mensaje.