Skip to main content
This page covers common issues you may encounter when running Pterodactyl Wings and their solutions.

Installation Issues

Error Message:
Solution:Wings looks for the configuration file at /etc/pterodactyl/config.yml by default (defined in config/config.go:31).
  1. Ensure the configuration file exists:
  2. If using a custom location, specify it with the --config flag:
  3. Verify file permissions (should be readable by Wings):
Error Message:
Solution:Wings requires a dedicated system user to own server files. The default username is pterodactyl (configurable in config.yml).For most Linux distributions:
For Alpine Linux:
Verify the user was created:
Error Message:
Solution:Wings needs to create several directories. Ensure the parent directories exist and have proper permissions:Default directories (from config/config.go):
  • Root: /var/lib/pterodactyl
  • Data: /var/lib/pterodactyl/volumes
  • Archives: /var/lib/pterodactyl/archives
  • Backups: /var/lib/pterodactyl/backups
  • Logs: /var/log/pterodactyl
  • Temp: /tmp/pterodactyl
Create directories manually:
Error Message:
Solution:Wings automatically creates a logrotate configuration at /etc/logrotate.d/wings if the directory exists.
  1. Verify logrotate is installed:
  2. Check if the directory exists:
  3. If you don’t want automatic log rotation, disable it in config.yml:
  4. Manually create the logrotate config if needed:

Docker Issues

Error Message:
Possible Causes & Solutions:
  1. Docker is not running:
  2. Docker socket permission denied:
  3. Docker API version mismatch: Wings uses API version negotiation. Check your Docker version:
    Ensure you’re running Docker 20.10 or newer.
  4. Network creation failed: The default network name is pterodactyl_nw. Check for conflicts:
    If there’s a conflict, remove the old network:
Error Context: Wings uses a 30-second timeout when checking container status during boot to prevent hanging (see cmd/root.go:220).Solutions:
  1. Check Docker daemon logs:
  2. Inspect the container:
  3. Check available disk space:
  4. Verify image exists:
    If the image is missing, Wings will pull it on first start (may take time).
  5. Check for resource limits: Ensure the server has enough memory and CPU allocated.
Error: Issues with pterodactyl0 bridge interfaceSolution:The network configuration is defined in config.yml:
  1. Check for IP conflicts:
    Ensure 172.18.0.0/16 doesn’t conflict with existing networks.
  2. Recreate the network:
  3. For custom networks: Edit config.yml and adjust the subnet/gateway.

Connection Problems

Default Configuration:
  • Host: 0.0.0.0
  • Port: 8080
  • SSL: Disabled by default
Troubleshooting:
  1. Verify Wings is listening:
  2. Check firewall rules:
  3. Test connectivity:
  4. Check SSL configuration in config.yml:
  5. Verify certificate validity:
Default SFTP Configuration:
  • Address: 0.0.0.0
  • Port: 2022
Common Issues:
  1. Port not accessible:
  2. Invalid credentials:
    • SFTP uses the format: username.serverid
    • The username must match the regex pattern: ^(?i)(.+)\.([a-z0-9]{8})$
    • Password is verified against the Panel API
  3. Authentication failures: Check Wings logs:
    Common error: the credentials provided were invalid
    • Verify Panel is accessible from Wings
    • Check API token in config.yml
  4. Read-only mode: If SFTP is in read-only mode, check config.yml:
  5. Check SFTP server logs: Wings logs SFTP connections with the client IP:
Error: Panel shows Wings as offline or unreachableChecklist:
  1. Verify Wings is running:
  2. Check token configuration: The token in Wings config.yml must match the Panel:
    Wings also supports environment variables:
    And file-based tokens (useful with systemd credentials):
  3. Verify remote query settings in config.yml:
  4. Test Panel connectivity from Wings:
  5. Check for certificate errors: If using self-signed certificates, you may need:
    Only use --ignore-certificate-errors for testing. In production, use valid SSL certificates.

Configuration Issues

Error Message:
Solution:Wings attempts to auto-detect timezone from:
  1. TZ environment variable
  2. /etc/timezone file
  3. timedatectl command
  4. Falls back to UTC
Manual configuration in config.yml:
Verify timezone:
Context: Wings saves server states to disk every minute in /var/lib/pterodactyl/states.json to survive reboots.If servers don’t restart after reboot:
  1. Check states file:
  2. Verify file permissions:
  3. Check Wings logs for state errors:
Error: Server cannot write to files or directoriesSolution:Wings uses the configured system user (default: pterodactyl UID/GID 988).
  1. Check current ownership:
  2. Fix ownership recursively:
  3. Enable automatic permission checks in config.yml:
Setting check_permissions_on_boot: false can speed up boot times but may cause permission issues.

See Also