Cuando alguien no puede entrar a tu servidor, el mensaje de error ya te dice dónde está el problema; solo hay que saber leerlo. Esta guía recorre los mensajes de conexión más comunes de Minecraft Java y Bedrock, explica qué significa cada uno según la documentación oficial y qué revisar en orden. Está escrita pensando en servidores alojados en un hosting con panel, donde los puertos muchas veces no son los de siempre y eso explica la mitad de los casos.
Antes de nada: tres comprobaciones que resuelven la mayoría
- ¿El servidor está encendido y terminó de arrancar? Mira la consola. Mientras no aparezca la línea
Done, nadie puede entrar, y un servidor con modpack puede tardar varios minutos. - ¿La dirección es exactamente la del panel? IP y puerto. En paneles como Pterodactyl el puerto casi nunca es 25565; un jugador que escribe solo la IP se conecta al puerto por defecto, donde no hay nada. La forma de evitarlo es repartir un subdominio con registro SRV (más abajo).
- ¿La versión del jugador coincide con la del servidor? Un cliente 26.3 no entra a un servidor 1.21.x sin ViaVersion, y al revés tampoco.
Nuestra herramienta de estado de servidor hace las dos primeras comprobaciones desde fuera: si responde, el problema está en el cliente o en su red; si no responde, está en el servidor o en la dirección.
Errores de Java, uno por uno
"Connection refused" (io.netty.channel.AbstractChannel$AnnotatedConnectException)
Significa, literalmente, que en esa IP y puerto no hay nada escuchando. La wiki oficial lo resume así: no hay ningún proceso en ese puerto. Causas, en orden de frecuencia: el servidor está apagado o aún arrancando; el puerto está mal (ver el punto 2 de arriba); la IP es de otro servidor o cambió; o, en un servidor en casa, se apagó el cortafuegos en lugar de abrir el puerto. En un hosting, revisa consola y dirección; si todo cuadra, abre ticket, porque entonces el fallo es de red del proveedor.
"Connection timed out"
Aquí sí hay algo al otro lado, pero un cortafuegos ignora la conexión sin responder. En un servidor casero es el típico problema de puertos sin abrir en el router. En un hosting suele ser otra cosa: el jugador está en una red que bloquea el puerto (colegios, oficinas, algunos proveedores móviles), tiene un antivirus con "protección de red" o una VPN que corta el tráfico. Prueba desde otra conexión (datos del móvil) para aislar.
"Outdated server! I'm still on X" / "Outdated client! Please use X"
El primero lo ve el jugador cuando su cliente es más nuevo que el servidor; el segundo, cuando es más viejo. No es un fallo: es que Minecraft no permite versiones distintas. Soluciones: que todos usen la misma versión (en el launcher se elige), actualizar el servidor con backup previo, o instalar ViaVersion (y ViaBackwards para clientes más viejos) si quieres admitir varias versiones a la vez.
"Failed to verify username!"
El servidor está en online-mode=true y no pudo verificar la sesión del jugador con los servidores de Mojang. Causas: el jugador usa un launcher no oficial en un servidor premium; su sesión del launcher caducó (cerrar y abrir launcher y juego lo arregla); cambió de nombre hace poco; o los servidores de autenticación de Mojang están caídos (pasa, y afecta a todos a la vez). Si tu servidor es no premium a propósito, la guía de servidor no premium explica cómo configurarlo con un plugin de login. Y si el servidor está detrás de un proxy (Velocity o BungeeCord), este error al entrar suele significar que un backend sigue con online-mode=true cuando debería estar en false.
"Invalid session (Try restarting your game and the launcher)"
El token de sesión del cliente caducó o no es válido. Es un problema del lado del jugador: reiniciar launcher y juego; si persiste, cerrar sesión en el launcher y volver a entrar.
"Took too long to log in"
El proceso de login superó el tiempo máximo del servidor. Ocurre con redes lentas, cuando los servidores de autenticación tardan, y sobre todo en modpacks grandes donde el cliente tarda en negociar los mods. En networks con Velocity y backends de Forge, la FAQ oficial recomienda subir read-timeout en velocity.toml y -Dfml.readTimeout en el backend al mismo valor.
"Timed out" durante la partida
El cliente dejó de responder a los paquetes de keepalive durante 30 segundos: micro-cortes de la conexión del jugador, wifi inestable o, en el servidor, una pausa larga de Java (recolector de basura) que congela el proceso. Si le pasa a un jugador, es su red; si les pasa a todos a la vez, mira los TPS y la memoria del servidor. Purpur trae una opción (use-alternate-keepalive) que evita expulsar por un solo paquete perdido.
"Internal Exception: java.io.IOException: An existing connection was forcibly closed by the remote host"
La conexión TCP se cortó desde el otro lado: el servidor se reinició o cayó en ese momento, un paquete demasiado grande (plugins que mandan inventarios enormes, texturas), o un corte de red entre medias. Es un síntoma genérico: mira la consola del servidor en el momento exacto de la desconexión.
"The server responded with an invalid server key"
Según la wiki, aparece con servidores o clientes desactualizados, no reconocidos o modificados. Lo típico: cliente y servidor de versiones muy distintas, o un cliente modificado. Alinea versiones.
"Failed to bind to port" (esto lo ve el administrador, no el jugador)
El servidor no puede abrir su puerto al arrancar. Causas documentadas: server-ip tiene una IP que no es de esa máquina (déjalo vacío; no va ahí tu IP pública), el puerto ya lo usa otro proceso (otro servidor arrancado, o un Geyser duplicado), o el puerto no es el que te asignó el panel.
Errores de versión de Java al arrancar
UnsupportedClassVersionError ... class file version 69.0 y similares significan que el Java instalado es más viejo del que pide el servidor. Como referencia oficial: Minecraft 1.18 a 1.20.4 necesita Java 17; 1.20.5 a 1.21.11, Java 21; y desde la 26.1 (marzo de 2026), Java 25. En un panel se cambia la imagen de Java del servidor; si no sabes cuál, soporte lo ajusta.
Errores de Bedrock
"Unable to connect to world"
Es el error estrella de Bedrock y Geyser, y no deja rastro en la consola. La documentación de Geyser lo atribuye a cuatro cosas: el puerto de Bedrock no está abierto en UDP (abrirlo solo en TCP no sirve; Geyser lo usa por los dos protocolos), un cortafuegos en la máquina, una IP o puerto equivocados (en Bedrock se pone la IP del servidor Java y el puerto de Geyser, 19132 por defecto, en un campo aparte), o el método de conexión de consola. Si el servidor no está detrás de un servicio como TCPShield, revisa que en la config de Geyser el uso de proxy protocol esté desactivado.
"Outdated Geyser proxy! This server supports the following Bedrock versions: …"
El juego de Bedrock del jugador es más nuevo que lo que soporta la versión de Geyser instalada. Pasa en cada actualización de Bedrock. Solución: actualizar Geyser. Tenemos la guía de "Outdated Geyser proxy" paso a paso.
"Outdated server! I'm still on 1.x" visto por un jugador de Bedrock
Geyser se presenta ante el servidor Java como un cliente de la última versión que soporta; si tu servidor Java va atrás, Geyser no puede entrar. Actualiza el servidor o instala ViaVersion en él.
"Invalid IP address!" en Bedrock
Bedrock no entiende registros SRV. Si repartiste un subdominio que solo funciona por SRV, los de Bedrock tienen que usar la IP (o un subdominio con registro A) y escribir el puerto en su campo.
"Stuck on Locating Server"
Servidor Java desactualizado respecto a Geyser, o problema de red con paquetes grandes: la documentación sugiere bajar mtu en la sección avanzada de la config de Geyser en pasos de 100.
Consolas (Xbox, PlayStation, Switch)
No tienen campo para añadir un servidor externo. Entran mediante un truco de DNS o un pequeño servidor que redirige. No es un error de tu servidor; es el procedimiento. Nuestro soporte guía a cada jugador según su consola.
Puertos no estándar y registros SRV: la causa oculta
En un hosting con Pterodactyl tu servidor puede estar en IP:25580, por ejemplo. Si repartes solo la IP, los jugadores de Java irán al 25565 y verán "Connection refused". Tienes dos salidas:
- Repartir IP y puerto juntos (
IP:25580). Funciona, pero cada cambio obliga a avisar a todos. - Un subdominio con registro SRV: en tu DNS, un registro
_minecraft._tcp.play.tuserver.comapuntando al host y puerto reales. Los jugadores de Java escribenplay.tuserver.comsin puerto y listo. Recuerda que Bedrock no lee SRV: para ellos, un registro A y el puerto UDP de Geyser aparte.
Los paneles suelen dar un subdominio gratis con el SRV ya configurado; pídelo en lugar de repartir IPs numéricas, y si cambias de proveedor solo actualizas el DNS, como explicamos en la guía de migración.
Cuando todos se desconectan a la vez
Si el error lo ven varios jugadores al mismo tiempo, ya no es la red de uno. Las causas habituales son: el servidor se cayó o se reinició (consola), una pausa larga de memoria (el proceso se congela y expulsa a todos por timeout; ver servidor sin memoria), un ataque DDoS (en nuestro caso la protección está incluida y lo verás en el panel), o un cambio de IP del nodo. Un reporte de Spark en ese momento suele señalar si la causa estaba dentro del servidor.
Resumen rápido
- Refused: no hay servidor en esa IP:puerto. Consola y dirección.
- Timed out: algo bloquea la conexión. Cortafuegos o red del jugador.
- Outdated: versiones distintas. Alinear o ViaVersion.
- Failed to verify username / Invalid session: autenticación. Launcher, Mojang o
online-modetras un proxy. - Took too long to log in: tiempos de espera. Red, modpack o
read-timeout. - Unable to connect to world: Bedrock. Puerto UDP, IP:puerto, consola.
Si contratas con nosotros, estos son los problemas que soporte atiende en Discord a cualquier hora, en español; y los puertos, el subdominio con SRV y el puerto de Geyser los dejamos configurados al crear el servidor.