Pterodactyl 500 Debugging
An HTTP 500 only tells you that the panel crashed while handling the request. After an addon install, the usual causes are wrong ownership, unwritable cache directories, stale Laravel caches, or a queue worker still running old code. Work through these in order.
Check ownership
The panel files should belong to the webserver account. Debian and Ubuntu usually use www-data:www-data; Arch commonly uses http:http.
For Debian and Ubuntu:
chown -R www-data:www-data /var/www/pterodactyl/*For Arch Linux:
chown -R http:http /var/www/pterodactyl/*Replace the path and service account if your setup differs.
Fix writable directories
Laravel must be able to write to storage and bootstrap/cache:
cd /var/www/pterodactyl
chmod -R 755 storage/* bootstrap/cache/Clear Laravel's caches
An addon can leave compiled routes, views, or configuration out of sync. Clear them:
cd /var/www/pterodactyl
php artisan optimize:clear
php artisan view:clear
php artisan config:clear
php artisan route:clear
php artisan cache:clearRestart the queue worker
Queue workers stay alive between deployments. Restart them so they load the new code:
cd /var/www/pterodactyl
php artisan queue:restartRead the actual error
If the panel still fails, the Laravel log should contain the real exception. This command uploads the latest 150 lines to Pteropaste:
tail -n 150 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log | nc pteropaste.com 99Read the output before sharing the link. Logs can contain hostnames, usernames, tokens, and addon configuration. Redact anything private.