Skip to main content
This guide covers debugging tools and techniques for troubleshooting Pterodactyl Wings issues.

Debug Mode

Enabling Debug Mode

Wings supports debug mode which increases log verbosity to help diagnose issues. Via command-line flag:
Via configuration file: Edit /etc/pterodactyl/config.yml:
Via systemd service: Edit /etc/systemd/system/wings.service:
Then reload and restart:
The --debug flag takes precedence over the configuration file setting. When enabled via flag, Wings will not save the debug state to disk to prevent always running in debug mode after restart.

Debug Mode Output

When debug mode is enabled, Wings will:
  • Log at DEBUG level instead of INFO level (configured in cmd/root.go:428-431)
  • Print “running in debug mode” on startup (cmd/root.go:95)
  • Include detailed information about:
    • Configuration loading
    • Directory creation
    • Server bootstrapping
    • Docker operations
    • Resource polling
    • State changes
Example debug output:

Log Files

Log Locations

Wings writes logs to multiple locations depending on configuration. Primary Wings log:
Installation logs (per-server):
Custom log directory: Configure in config.yml:

Viewing Logs

Tail the main Wings log:
View with systemd journal:
Filter logs by keyword:

Log Rotation

Wings automatically configures log rotation if /etc/logrotate.d exists (see config/config.go:695-737). Default rotation settings:
  • Rotate when log reaches 10M
  • Keep logs for 7 days
  • Compress old logs
  • Use HUP signal to reload Wings
Manual rotation:
Check rotation status:
Disable automatic log rotation in config.yml:

Diagnostics Command

Wings includes a built-in diagnostics command that collects system information for troubleshooting.

Running Diagnostics

The diagnostics command will:
  1. Ask if you want to include endpoints (FQDNs/IPs)
  2. Ask if you want to include logs
  3. Ask if you want to review before uploading
  4. Collect system information
  5. Optionally upload to a hastebin service

Diagnostics Output

The diagnostics report includes: Version Information:
  • Wings version
  • Docker version
  • Kernel version
  • Operating system
Wings Configuration:
  • Panel location (redacted by default)
  • Webserver settings (host, port, SSL)
  • SFTP server settings
  • Directory paths
  • System user
  • Timezone
  • Debug mode status
Docker Information:
  • Server version
  • Storage driver and status
  • Logging driver
  • Cgroup driver
  • System warnings
Running Containers:
  • List of all Docker containers
Logs:
  • Last 200 lines of Wings logs (configurable)

Diagnostics Options

Custom hastebin URL:
Custom log line count:
Example output:

Performance Profiling

Wings includes built-in support for Go’s pprof profiler to diagnose performance issues.

Enabling pprof

Start Wings with profiling:
Custom pprof port:
Enable block profiling:
By default, pprof binds to localhost:6060 (configured in cmd/root.go:81-83).

Accessing pprof

Once enabled, pprof provides several endpoints: CPU Profile:
Heap Memory:
Goroutines:
Block Profile:
Mutex Profile:
All available profiles:

Analyzing Profiles

Interactive mode:
Generate CPU profile:
Generate SVG graph:
Only enable pprof when actively debugging performance issues, as it adds overhead. The profiler only binds to localhost by default for security.

Diagnostic Commands

Check Wings Status

Check Docker Status

Check Server States

Check Disk Usage

Network Diagnostics

Common Log Messages

Startup Messages

Successful startup:
Docker configuration:

Error Messages

Configuration errors:
Server errors:
Docker errors:

Crash Detection Messages

Debugging Server Issues

Server Won’t Start

  1. Check server logs:
  2. Check Wings logs:
  3. Inspect container:
  4. Check for resource limits: Look for memory/CPU constraints in the server configuration.
  5. Verify image exists:

Server Crashes Repeatedly

Wings has built-in crash detection with a configurable timeout (default: 60 seconds in config/config.go:270). Check crash configuration:
View crash messages:

Resource Usage Issues

Wings polls Docker stats continuously when a server is running (see environment/docker/stats.go). Monitor in real-time:
Check memory calculation: Wings calculates memory differently than docker stats to match the Panel display. See environment/docker/stats.go:98-120 for details.

See Also