Server Crashes & Linux Exit Codes
When a Minecraft server crashes, Pterodactyl outputs an exit code in the console. Consult the breakdown below to pinpoint the exact root cause:
| Exit Code | Underlying Cause | Diagnostic & Resolution Steps |
|---|---|---|
| Exit Code 1 | Generic Java application crash. Usually caused by conflicting mods/plugins, invalid configuration syntax, or corrupt world chunks. |
1. Check crash-reports/ in File Manager for the latest timestamped crash log.2. Look for lines beginning with Caused by: to identify the problematic plugin or mod.3. Remove or update the offending JAR and restart. |
| Exit Code 137 (OOM Killer) |
Out of Memory (OOM). The server exceeded its allocated RAM limit. The Linux kernel sent SIGKILL (9) (128 + 9 = 137) to prevent host memory exhaustion. |
1. Check if view distance or simulation distance is set above 10 in server.properties.2. Ensure you are using Aikar's Flags in Startup settings. 3. Install memory optimization mods (FerriteCore for Forge/Fabric) or pre-generate chunks with Chunky. 4. Upgrade your RAM allocation if your player count or modpack exceeds available memory. |
| Exit Code 143 | Orderly shutdown signal (SIGTERM, 128 + 15 = 143). Occurs when a stop button was clicked or a scheduled restart executed cleanly. |
Normal behavior. If unexpected, check the Schedules tab for automated reboot tasks. |
Failed to Bind Port (Address Already in Use)
FAILED TO BIND TO PORT!
java.net.BindException: Address already in use
Perhaps a server is already running on that port?
Why This Happens:
- The port configured in
server.properties(server-port=XXXXX) does not match the Primary Port assigned to your server in the Pterodactyl Network tab. - Another plugin (such as Dynmap, BlueMap, Votifier, or Geyser) is attempting to bind to the primary Java port instead of an assigned auxiliary allocation.
How to Fix:
- Go to Network in the sidebar. Note your primary port (e.g.
25565). - Open
server.properties(or use our visual Server Properties Editor) and ensureserver-portmatches your primary allocation. - If using secondary plugins (e.g. Dynmap), assign a secondary allocation in the Network tab and insert that secondary port into the plugin's configuration file.
Java Version Errors (UnsupportedClassVersionError)
java.lang.UnsupportedClassVersionError: net/minecraft/server/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0
This error means your server is running an older Java version than required by your Minecraft release:
- Class file 65.0: Requires Java 21 (Minecraft 1.20.5 – 1.21.x+).
- Class file 61.0: Requires Java 17 (Minecraft 1.18 – 1.20.4).
- Class file 60.0: Requires Java 16 (Minecraft 1.17.x).
- Class file 52.0: Requires Java 8 (Minecraft 1.7.10 – 1.12.2).
Resolution: Navigate to Startup Settings in Pterodactyl. Locate the Docker Image dropdown, select the matching Java version (e.g. Java 21), and restart your server.
SFTP Authentication & Connection Failures
- "Authentication Failed / Password Incorrect": Your SFTP password is your Pterodactyl account login password, NOT your server root password or billing password. If unsure, reset your panel password in Account Settings.
- "Connection Refused on Port 22": Pterodactyl SFTP operates on port 2022, not default port 22! In FileZilla, enter
YOUR_NODE_IP, your full username (e.g.username.abc12345), password, and explicitly set Port: 2022.
UPI & Cryptocurrency Billing Troubleshooting
UPI Money Deducted but Invoice Shows Unpaid
If your bank account was debited via Google Pay, PhonePe, or Paytm, but the invoice page expired or did not turn green:
- Open your payment app and copy the 12-Digit UTR Number (e.g.
431289456123). - Take a screenshot of the completed payment receipt showing the UTR, date, and amount.
- Submit a ticket in the Client Area or message our billing staff on Discord. We will verify the bank ledger and mark your invoice as paid within minutes.
Crypto Payment Pending or Delayed Confirmations
Cryptocurrency transactions must reach the required blockchain confirmation count before the gateway marks the invoice as paid:
- TRC-20 USDT: Requires 1–3 confirmations (1–3 minutes).
- BTC / LTC: Requires 1–6 confirmations depending on network congestion (5–30 minutes).
- Underpayment: If your crypto exchange deducted withdrawal fees and the invoice received slightly less than the total, open a ticket with your TxID (Transaction Hash) for manual credit adjustment.
Need Direct Help Resolving an Error?
Our systems engineers are online 24/7 on Discord and live tickets to inspect crash logs, resolve port conflicts, and verify payments.