Minecraft Bedrock 26.60 NetherNet Setup & Fix
A comprehensive, battle-tested tutorial explaining how to resolve Terracotta and InitialConnection-149 disconnection errors resulting from Mojang's NetherNet network overhaul in Bedrock update 26.60.
1. Common Symptoms Reported
Following the release of Minecraft Bedrock Edition 26.60, server administrators running crossplay networks (via Geyser & Floodgate) frequently report that mobile (iOS / Android), Windows 10/11, PlayStation, Xbox, and Nintendo Switch players can no longer join their Java servers.
“Could not connect: Outdated client! (or Outdated server!)” accompanied by error code Terracotta.
Console logs showing InitialConnection-149 or Timed out waiting for NetherNet signaling packet.
2. Why This Issue Occurs: The NetherNet Transition
Prior to Bedrock 26.60, Minecraft Bedrock used the legacy RakNet UDP protocol. All client traffic (authentication, ping, entity position, chunk loading) travelled over a single UDP port (traditionally port 19132).
In version 26.60, Mojang phased out standalone RakNet in favor of NetherNet—a hybrid architecture utilizing TCP for initial WebRTC signaling / ICE negotiation and UDP for peer-to-peer media and gameplay packets.
Why Legacy Single-Port Setups Fail
3. Required Network Ports Architecture
Under the NetherNet specification, your server requires two distinct external ports allocated in your Pterodactyl panel:
| Port Role | Protocol | Standard Default | Function |
|---|---|---|---|
| TCP Signaling Port | TCP | 28273 | ICE / WebRTC connection initialization handshake. This is the port players enter in their client! |
| UDP WebRTC Port | UDP | 25573 | High-speed stream for world chunks, movements, and block interactions. |
| Java Backend Port | TCP | 25565 | Local loopback connection (127.0.0.1) between Geyser and Paper/Purpur. |
OrynCloud Automatic Port Allocations
4. Step 1: Update Geyser to Build 1237+
Older builds of Geyser (pre-build 1237) do not contain the native NetherNet WebRTC signaling engine.
- Stop your Minecraft server from the Pterodactyl console.
- Go to File Manager → plugins/ and remove the old
Geyser-Spigot.jar. - Download the latest build from the official Geyser repository or install it with 1-click via the OrynCloud Plugin Store extension.
- Ensure you are running Geyser Build 1237 or newer.
5. Step 2: Configure Geyser config.yml
Navigate to plugins/Geyser-Spigot/config.yml in your Pterodactyl file editor and adapt the configuration as shown below:
# -------------------------------------------------------------
# Geyser-Spigot / Paper Configuration for Bedrock 26.60+
# Protocol: NetherNet WebRTC + TCP Signaling
# -------------------------------------------------------------
bedrock:
# The WebRTC UDP port for streaming gameplay packets
address: 0.0.0.0
port: 25573
clone-remote-port: false
motd1: "OrynCloud SMP"
motd2: "Crossplay Powered by NetherNet"
remote:
# Connection to the local Java backend
address: 127.0.0.1
port: 25565
auth-type: floodgate
signaling:
# TCP Signaling port used for ICE / WebRTC handshake
enabled: true
address: 0.0.0.0
port: 28273
use-direct-connection: true
# The public address and signaling port players enter in their client
advertise-addresses:
- address: "in1.oryncloud.com"
port: 28273Configuration Checklist:
- bedrock.port: Set this to your allocated UDP port (e.g.
25573). - signaling.enabled: Must be set to
true. - signaling.port: Set this to your allocated TCP port (e.g.
28273). - use-direct-connection: Must be
true. - advertise-addresses: Specify your server's public hostname and signaling port.
6. Step 3: Verify Floodgate key.pem Authentication
Floodgate allows Bedrock players to authenticate through Xbox Live without requiring a Java account.
Ensure plugins/floodgate/key.pem exists. In plugins/Geyser-Spigot/config.yml, confirm that:
remote:
auth-type: floodgateOffline Mode & BungeeCord / Velocity
key.pem is synchronized across all sub-servers and auth-type: floodgate is defined uniformly.7. Step 4: Restart & Console Output Verification
Start your server from the console. Look for the following confirming log entries:
[INFO] [Geyser-Spigot] Started NetherNet signaling server on 0.0.0.0:28273 (TCP)
[INFO] [Geyser-Spigot] Started WebRTC media socket on 0.0.0.0:25573 (UDP)
[INFO] [Geyser-Spigot] Loaded Floodgate key successfully.
[INFO] [Geyser-Spigot] Server listening for Bedrock 26.60 clients.If you see both Started NetherNet signaling server and Started WebRTC media socket, your server is ready!
8. Connecting from the Bedrock Client
Crucial Connection Step for Players
| Bedrock Client Field | Value to Enter | Example |
|---|---|---|
| Server Name | Any descriptive name | OrynCloud SMP |
| Server Address | Your server domain / node hostname | in1.oryncloud.com |
| Port | Your TCP Signaling Port | 28273 |
9. Troubleshooting & Diagnostics
If Bedrock players still encounter connection dropouts, run the built-in diagnostic dump command from the console:
geyser dumpThis command inspects your network bindings, Java version, and plugin compatibility, generating a secure URL that you can share with the Geyser or OrynCloud support team.