Troubleshooting¶
Checking Logs¶
The first step when debugging any issue is to check the logs.
Laravel log -- the main application log lives at:
In Docker, you can tail it directly:
Docker container logs -- to see stdout/stderr output from the Solder container:
Enable debug mode -- for more detailed error messages, set APP_DEBUG=true in your .env file:
Danger
Never leave APP_DEBUG=true in production. Debug mode exposes sensitive information including environment variables, database credentials, and full stack traces to anyone who triggers an error.
Common Issues¶
"Error in exception handler"¶
This almost always means Laravel cannot write to its storage/ or bootstrap/cache/ directories. Fix the permissions:
chgrp -R www-data storage bootstrap/cache
find storage bootstrap/cache -type d -exec chmod 775 {} \;
find storage bootstrap/cache -type f -exec chmod 664 {} \;
Docker
If you're running Solder via Docker, file permissions are handled automatically by the setup entrypoint. You should not need to fix them manually.
"MD5 hashing failed"¶
When adding or rehashing a mod version, Solder computes an MD5 checksum of the zip file. If this fails, check the following:
SOLDER_REPO_LOCATIONis incorrect -- this must point to the directory (or URL) that contains your mod files. Include a trailing slash.SOLDER_MIRROR_URLdoesn't match the actual download URL -- the mirror URL is what the launcher uses to download files. It must be publicly accessible and point to the same repository.- The web server can't read the mod files -- ensure the user running PHP (e.g.,
www-data) has read access to the repository directory. -
The file doesn't exist at the expected path -- Solder expects mod files at:
For example, if
SOLDER_REPO_LOCATION=/var/www/repo/, a mod with slugbuildcraftat version7.1.23should be at:
Connection Issues in Docker¶
If the application fails to connect to the database or cache, start by checking that all containers are running:
All services should show a status of Up or healthy.
- Database not ready -- the Solder container includes a health check that waits for the database to accept connections before starting the application. If migrations fail on first boot, restart the stack with
docker compose down && docker compose up -d. - Redis/Valkey connection refused -- verify the
redisservice is running withdocker compose ps. If using a custom Redis host, make sureREDIS_HOSTandREDIS_PORTin your.envmatch the actual service.
"Class not found" or Autoloader Errors¶
If you see errors about missing classes after updating or changing branches, regenerate the Composer autoloader:
In Docker: