Cardinal Review

Port port is already in use

critical generic

In the console

EADDRINUSE … :port
* FAILED TO BIND TO PORT
Perhaps a server is already running on that port
Failed bind … :port

The server tried to listen on a port that something else is already using, or that is not one of the ports allocated to this server. Each server can only use the IP and ports listed on its Network page.

How to fix it

  1. Open the Network page and note the primary allocation's port.
  2. Make sure the server's own config uses that port: server.properties (server-port), config.yml, server.cfg, .env or the startup variables. Prefer the {{SERVER_PORT}} variable where the egg supports it.
  3. If the port is correct, another copy of the server may still be running: stop the server, wait a few seconds, then start it again.
  4. Plugins that open extra ports (web maps, query, RCON, voice chat) each need their own allocation; add one on the Network page and point the plugin at it.

No space left on the disk

critical generic

In the console

No space left on device
ENOSPC
There is not enough space on the disk
Disk quota exceeded

A write failed because the disk is full, either the server's own disk allowance or the node's disk. Files written at that moment (worlds, configs, databases) may be incomplete.

How to fix it

  1. Free space in the File Manager: old logs, crash reports, backups stored in the server folder and unused worlds are the usual culprits.
  2. Check the server's disk usage against its limit on the console page.
  3. If the server has plenty of room left, the node itself may be full; tell your host or admin.
  4. After freeing space, restart and check that worlds and configs saved correctly.

Permission denied while accessing a file

error generic

In the console

EACCES
PermissionError: [Errno 13]
java.nio.file.AccessDeniedException
open … : Permission denied

The server process was not allowed to read or write a file. Inside Pterodactyl containers everything runs as the 'container' user, so files created as root (for example by an upload tool or an old install) can become unreadable.

How to fix it

  1. Restart the server: Wings fixes ownership of the server folder on every start.
  2. If one file keeps failing, check its permissions in the File Manager and set them to 644 (files) or 755 (folders and scripts).
  3. Make sure the server is not trying to write outside its own folder (for example to /etc or /usr).

Binary was built for a different CPU architecture

critical generic docker

In the console

exec format error
cannot execute binary file

The program or Docker image targets a different CPU architecture than the node: typically an x86_64 (amd64) build on an ARM (arm64) node, or the other way round.

How to fix it

  1. Ask your host or admin which architecture the node uses.
  2. Pick a Docker image on the Startup page that has a build for that architecture.
  3. Replace the server binary with the matching build (for example the linux-arm64 download instead of linux-x64).

Command 'cmd' was not found

error generic

In the console

sh: cmd: not found
.sh: cmd: not found
exec: "cmd": executable file not found

The startup command or a script called a program that is not installed in the Docker image.

How to fix it

  1. Check the startup command and scripts for typos in the program name.
  2. Switch to a Docker image that includes the program (for example a Java, Node.js or Python image of the right version).
  3. If a script installs it, run that step during installation (Settings > Reinstall) rather than at startup.

Script has Windows line endings

error generic

In the console

$'\r': command not found
/bin/sh^M: bad interpreter
: No such file or directory

A shell script was saved with Windows (CRLF) line endings. Linux reads the extra carriage return as part of each command and fails.

How to fix it

  1. Open the script in the File Manager, re-save it with Unix (LF) line endings, or run 'dos2unix' on it.
  2. In your editor, set line endings to LF before uploading scripts.

Too many open files

error generic

In the console

Too many open files
EMFILE

The process hit its limit of open files and sockets. This is usually a leak in a plugin, mod or bot that opens connections or files without closing them, or an unusually large number of connections.

How to fix it

  1. Restart the server to release the handles, then watch whether the error returns after a similar amount of uptime (a leak).
  2. Disable recently added plugins or mods to find the one that leaks.
  3. If the load is legitimate, ask your host or admin whether the node's open-file limit (ulimit -n) can be raised.

Native crash (segmentation fault)

critical generic

In the console

Segmentation fault
SIGSEGV
(core dumped)

Native code crashed by accessing invalid memory. The cause is in the server binary, a native library or a native extension, not in a normal config file.

How to fix it

  1. Update the server, its Docker image and any native extensions (Metamod/SourceMod, Oxide, native Node or Python modules).
  2. Remove the most recently added mods or plugins one at a time to find the trigger.
  3. If it started after switching Docker image or game version, go back to the previous one.

CPU does not support an instruction the server needs

critical generic

In the console

Illegal instruction
SIGILL
requires AVX support

The program uses CPU instructions (often AVX or AVX2) that the node's processor or virtual machine does not expose.

How to fix it

  1. Use a build of the server or library compiled without AVX (many projects publish a 'no-avx' or 'generic' build).
  2. Hosts: enable CPU passthrough (host CPU type) for the node's virtual machine so AVX is available.

Process was killed by the system

critical generic

In the console

Killed
line … : … Killed

The shell reports 'Killed' when the process received SIGKILL, almost always because it exceeded its memory limit.

How to fix it

  1. Lower the memory the program is told to use (for Java, -Xmx about 10-15% below the server's limit).
  2. Check the Performance tab for the memory curve before the kill.
  3. Raise the server's memory limit if it is genuinely too small.

Docker image has an older C library than the binary needs

critical generic docker

In the console

GLIBC_version' not found
GLIBCXX_version' not found

The program was built against glibc/libstdc++ version but the Docker image ships an older one, so the binary cannot load.

How to fix it

  1. Choose a newer Docker image on the Startup page (for example a Debian 12 / Ubuntu 24.04 based image).
  2. Or download a build of the program made for older Linux distributions.

Missing shared library library

critical generic docker

In the console

error while loading shared libraries: library
library: cannot open shared object file

A native library the program needs is not present in the Docker image, or it is present for the wrong architecture (32-bit vs 64-bit).

How to fix it

  1. Pick the Docker image the egg recommends for this game; images made for Steam games include the usual 32-bit libraries.
  2. If the library ships with the game (for example steamclient.so), reinstall the server so it is copied back.
  3. Admins: add the package that provides the library to a custom image.

DNS lookup failed

error generic

In the console

Temporary failure in name resolution
Name or service not known
getaddrinfo ENOTFOUND
java.net.UnknownHostException: host

The server could not turn a host name (a domain) into an IP address. The name may be misspelled, the service may be gone, or the node's DNS is not working.

How to fix it

  1. Check the host name in the config for typos (database hosts, API URLs, proxy targets).
  2. If several different hosts fail, the node's DNS is likely down; tell your host or admin.
  3. Admins: check the DNS servers configured for Wings containers (docker.dns in the Wings config).

Connection refused

error generic

In the console

Connection refused
ECONNREFUSED
java.net.ConnectException

The server reached the target machine but nothing was listening on that port. The other service (database, proxy, API, backend server) is stopped, or the address or port is wrong.

How to fix it

  1. Confirm the target service is running and listening on the port you configured.
  2. Inside a container '127.0.0.1' and 'localhost' mean the container itself. To reach another server on the same node, use the node's IP and that server's allocated port.
  3. Check firewall rules on the target if it is on another machine.

Network connection timed out

warning generic

In the console

Connection timed out
ETIMEDOUT
connect timed out
java.net.SocketTimeoutException

A connection did not get an answer in time. The remote service is slow or down, a firewall drops the traffic, or the node's outbound network is congested.

How to fix it

  1. Try again later; if it only happens occasionally the remote service was likely busy.
  2. If it always happens for one host, check that the host and port are correct and reachable from the node.
  3. Hosts: check outbound firewall rules on the node.

Connection was reset by the other side

info generic

In the console

ECONNRESET
Connection reset by peer
socket hang up

The remote side closed the connection abruptly. Occasional resets are normal (players or APIs disconnecting); frequent ones point to an unstable network or an overloaded remote service.

How to fix it

  1. Ignore occasional resets.
  2. If they are constant, check the Performance tab for CPU or network spikes at the same time, and check the remote service's status.

TLS/SSL certificate could not be verified

error generic

In the console

certificate verify failed
PKIX path building failed
unable to get local issuer certificate
CERT_HAS_EXPIRED

A secure connection failed because the certificate could not be trusted: it expired, it is self-signed, or the Docker image's CA certificates are outdated.

How to fix it

  1. If the remote site's certificate expired, it must be renewed on that side.
  2. Use a newer Docker image; old images ship outdated CA certificates (common with old Java 8 images).
  3. Make sure the server's clock is correct; a wrong date makes valid certificates look expired.

Memory allocation failed

critical generic

In the console

Cannot allocate memory
std::bad_alloc
MemoryError
out of memory

The program asked for more memory than was available. It may crash right after this, or keep running in a broken state.

How to fix it

  1. Check the Performance tab: if memory sits near the limit, the server needs a higher limit or a lighter configuration.
  2. Restart the server to recover from the failed allocation.
  3. Look for a plugin, mod or script with a memory leak if usage climbs steadily over time.

Required file not found

error generic

In the console

No such file or directory
java.io.FileNotFoundException: file
java.nio.file.NoSuchFileException: file

The server tried to open a file and it does not exist. It may have been deleted, renamed, never created by the installer, or the path in a config is wrong.

How to fix it

  1. Check that the file exists in the File Manager, with the exact same name and capitalisation.
  2. If it should have been created by the installer, run Settings > Reinstall (back up first).
  3. If the path comes from a config file or startup variable, correct it there.

Not sure which one you have?

Paste your log into the live demo, or install Cardinal Review Lite and it will point at the line for you. Lite is free.