Troubleshooting
Common issues and how to solve them.

Quick Checks
Before diving into specific problems, try these:
$docker compose ps
NAME STATUS PORTS
minepanel-frontend Up 0.0.0.0:3000->3000/tcp
minepanel-backend Up 0.0.0.0:8091->8091/tcp
Tip: run docker compose logs --tail 100 if any service is down
# Check if containers are running
docker compose ps
# View logs
docker compose logs minepanel
docker compose logs --tail 100
# Check Docker daemon
docker ps
# Restart everything
docker compose restartInstallation Issues
Worlds tab does not show my world
Symptoms: Worlds list is empty or missing entries.
Checklist:
- Upload world sources to either:
servers/<server-id>/worlds/(local)servers/.world/worlds/(World Library, global)
- Supported formats:
- Folder containing
level.dat .zip,.tar,.tar.gz,.tgz
- Folder containing
- If the world is inside nested folders, ensure one of them contains
level.dat - For Discover Worlds imports, only archive files are accepted (
.zip,.tar,.tar.gz,.tgz) - CurseForge search/import requires a configured API key in Settings
World switch applied but server starts old world
Symptoms: You select a world, restart, but old level remains.
Cause: By default, WORLD only copies if target level doesn't exist.
Solution:
- Enable Force world copy in the Worlds tab (
FORCE_WORLD_COPY=TRUE) - Or choose a different
LEVELname so a new target folder is created
Docker Not Found
Error: docker: command not found or docker compose: command not found
Solution:
# Install Docker
curl -fsSL https://get.docker.com | sh
# Add your user to docker group
sudo usermod -aG docker $USER
# Log out and back in, then test
docker --version
docker compose versionPermission Denied
Error: permission denied while trying to connect to the Docker daemon socket
Solution:
# Add user to docker group
sudo usermod -aG docker $USER
# Log out and back in, or:
newgrp docker
# Verify
docker psPort Already in Use
Error: port is already allocated or address already in use
Solution:
# Find what's using the port
sudo lsof -i :3000
sudo lsof -i :8091
# Option 1: Stop the conflicting service
sudo systemctl stop <service-name>
# Option 2: Change Minepanel ports
# Edit docker-compose.yml or .env
FRONTEND_PORT=3001
BACKEND_PORT=8092
# Restart
docker compose down
docker compose up -dConnection Issues
Can't Access Frontend
Symptoms: Browser shows "Can't connect" or "Connection refused"
Solutions:
- Check container is running:
docker compose ps
# Should show minepanel as "Up"- Check logs:
docker compose logs minepanel- Verify port:
# Check if port is open
curl http://localhost:3000- Firewall:
# Allow port through firewall
sudo ufw allow 3000/tcpCan't Access from Remote
Symptoms: Works on localhost but not from other devices
Solutions:
- Update FRONTEND_URL:
environment:
- FRONTEND_URL=http://YOUR_IP:3000 # Not localhost!- Firewall configuration:
# Ubuntu/Debian
sudo ufw allow 3000/tcp
sudo ufw allow 8091/tcp
sudo ufw allow 8080/tcp
# CentOS/RHEL
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --permanent --add-port=8091/tcp
sudo firewall-cmd --reloadCheck router port forwarding (if accessing from internet)
Restart after changes:
docker compose restartCORS Errors
Symptoms: Console shows CORS policy errors, API calls fail
Solution:
The FRONTEND_URL must match EXACTLY how you access the frontend:
# If accessing via http://localhost:3000
FRONTEND_URL=http://localhost:3000
# If accessing via http://192.168.1.100:3000
FRONTEND_URL=http://192.168.1.100:3000
# If accessing via domain
FRONTEND_URL=https://minepanel.yourdomain.comAlways restart after changing:
docker compose restartAuthentication Issues
Can't Login
Error: "Invalid credentials" with correct password
Solutions:
- Check if first time login:
If no user exists yet, Minepanel should show the initial admin registration screen instead of the login form.
- Password changed in UI:
If SMTP is configured and your account has an email, use the login page recovery flow or Administration.
- Database issues:
# Check if database exists
ls -l data/minepanel.db
# If missing, recreate
docker compose down
docker compose up -d- Reset password:
See Password Management.
Stuck on "Verifying authentication..."
Symptoms: Login appears successful, but dashboard keeps loading on "Verifying authentication...".
Cause: Browser is rejecting auth cookies because they are marked Secure while the panel is being accessed over plain HTTP.
Quick checks:
- Open browser DevTools → Network and inspect
/auth/meresponse (usually401in this case). - Open DevTools → Application/Storage → Cookies and verify whether
access_token/refresh_tokenare being stored.
Solutions:
- Recommended: Use HTTPS and set
FRONTEND_URL/NEXT_PUBLIC_BACKEND_URLtohttps://.... - HTTP fallback (LAN/dev only): Enable insecure auth cookies explicitly:
environment:
- ALLOW_INSECURE_AUTH_COOKIES=trueThen restart Minepanel:
docker compose restartJWT Token Errors
Error: "Invalid token" or "Token expired"
Solutions:
- Clear browser cache and cookies
- Log out and log back in
- Check JWT_SECRET hasn't changed:
environment:
- JWT_SECRET=same_secret_as_beforeServer Management Issues
Can't Create Server
Error: Server creation fails
Solutions:
- Check Docker socket access:
ls -l /var/run/docker.sock
# Should be readable by Docker group- Check BASE_DIR:
environment:
- BASE_DIR=/absolute/path # Must be absolute!- Check disk space:
df -h- View detailed error:
docker compose logs minepanel | grep -i errorServer Data Goes to the Wrong Host Folder
Symptoms: A created server runs, but its files land somewhere other than where you mounted the data, or the generated docker-compose.yml points at a path that doesn't exist on the host.
Cause: BASE_DIR (the host path that maps to /app) didn't match where you actually mounted the data. Generated server compose files use host paths derived from it.
Solution: This is now auto-detected — Minepanel reads the real host source of the /app/servers mount at startup, so you can leave BASE_DIR unset and it will match your mount. If you previously hardcoded it to a wrong value, remove it (or fix it) and recreate the affected servers. If you set BASE_DIR and it differs from the detected path, the startup logs will warn you and the detected path wins. See Configuration → Base Directory.
Server Won't Start
Symptoms: Server status shows "error" or "exited"
Solutions:
- Check server logs:
# Via UI: Go to server → Logs tab
# Via terminal:
docker logs <server-container-name>- Common issues:
Port conflict:
# Find what's using the port
sudo lsof -i :25565
# Change server port in MinepanelMemory limits:
# Increase memory in server settings
MAX_MEMORY: 4G
INIT_MEMORY: 2GEULA not accepted:
# Check if EULA=TRUE in server config
# Recreate server if needed- Restart Docker:
sudo systemctl restart docker
docker compose restartServer Stuck in "Starting"
Solutions:
- Give it more time - First start can take 5-10 minutes
- Check logs for actual progress
- Check resources:
docker stats
# Ensure enough CPU/RAM available- Force restart:
docker restart <server-container-name>Mod/Plugin Issues
Mods Not Downloading
Symptoms: Modrinth or CurseForge mods don't appear
Solutions:
- Check API key (for CurseForge):
environment:
CF_API_KEY: your_actual_key- Check server logs:
docker logs <server-name> | grep -i "modrinth\|curseforge"- Verify project names:
- Test on Modrinth website first
- Check spelling of project slugs
- Ensure compatibility with Minecraft version
- Network issues:
# Test connectivity from container
docker exec <server-name> ping modrinth.com
docker exec <server-name> ping api.curseforge.comVersion Conflicts
Symptoms: Server crashes, "incompatible" errors
Solutions:
- Check Minecraft version matches mods
- Verify loader version (Fabric/Forge/Neoforge)
- Check mod dependencies
- Remove conflicting mods one by one
File Browser Issues
Can't Upload Files
Solutions:
- Check permissions:
ls -ld servers/your-server/mc-data
# Should be writable- Check disk space:
df -hCan't Edit Files
Symptoms: Changes don't save
Solutions:
- Stop server first before editing critical files
- Check file permissions
- Use correct file encoding (UTF-8)
Performance Issues
High CPU Usage
Solutions:
- Limit server resources:
deploy:
resources:
limits:
cpus: '2'
memory: 4G- Use Aikar's flags:
environment:
USE_AIKAR_FLAGS: 'true'- Reduce view distance:
environment:
VIEW_DISTANCE: 6
SIMULATION_DISTANCE: 4High Memory Usage
Solutions:
- Increase swap:
# Check current swap
free -h
# Add swap
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile- Lower server memory allocation
- Use Paper/Purpur instead of Vanilla
Slow Response Times
Solutions:
- Use SSD instead of HDD
- Increase server resources
- Enable auto-pause for idle servers:
environment:
ENABLE_AUTOPAUSE: 'true'
AUTOPAUSE_TIMEOUT_EST: 3600Database Issues
Database Locked
Error: "database is locked"
Solution:
# Stop all containers
docker compose down
# Wait a few seconds
sleep 5
# Start again
docker compose up -dCorrupted Database
Symptoms: Errors loading servers, UI broken
Solutions:
- Restore from backup:
docker compose down
cp data/minepanel.db.backup data/minepanel.db
docker compose up -d- If no backup, reset: (loses all data)
docker compose down
rm data/minepanel.db
docker compose up -dDocker Issues
Container Keeps Restarting
Solutions:
- Check logs:
docker compose logs --tail 100- Check for crashes:
docker inspect minepanel | grep -A 10 "State"- Verify environment variables:
docker compose configCan't Pull Image
Error: "error pulling image configuration"
Solutions:
- Check internet connection
- Check Docker Hub status
- Clear Docker cache:
docker system prune -a- Manual pull:
docker pull ketbom/minepanel:latestBedrock-Specific Issues
Can't Connect to Bedrock Server
Symptoms: Minecraft client shows "Unable to connect to world"
Solutions:
- Check UDP port is open:
# Bedrock uses UDP, not TCP!
sudo ufw allow 19132/udp
# Check firewall
sudo ufw status- Port forwarding:
If accessing from internet, ensure router forwards UDP port.
- LAN visibility:
environment:
ENABLE_LAN_VISIBILITY: 'true'- Online mode:
If using Xbox Live accounts, ensure ONLINE_MODE=true.
Bedrock Commands Not Working
Symptoms: Commands sent but nothing happens
Solutions:
- Check server logs - Bedrock command output goes to logs, not the console response:
docker logs <bedrock-server-name> --tail 50- Verify command syntax:
# Correct
docker exec CONTAINER send-command say Hello
# Not RCON - Bedrock doesn't support RCONBedrock Server Stuck Starting
Solutions:
- EULA acceptance:
environment:
EULA: 'TRUE'- Version issues:
environment:
VERSION: LATEST # or specific like "1.21.0.03"- Check logs for specific error:
docker logs <bedrock-server-name>Command & Auto-Stop Issues
Server Restarts After Auto-Stop
Symptoms: Server stops due to Auto-Stop, then container starts again immediately.
Cause: Restart policy is incompatible with Auto-Stop.
Solution:
- Enable Auto-Stop from the UI.
- Confirm restart policy is set to No restart.
- Save configuration.
Minepanel now enforces this rule automatically on save (enableAutoStop=true => restartPolicy=no).
Command Fails with Strange Characters / Malformed Input
Symptoms: Commands fail unexpectedly, especially after paste from terminal/chat tools.
Cause: Hidden control or ANSI characters in command input.
Solution:
- Re-type or paste plain text command.
- Minepanel now normalizes command input (trim + control-char removal).
- Empty commands after normalization are rejected as invalid payload.
Console Response Shows Color Codes
Symptoms: Response includes raw ANSI sequences like \x1b[32m.
Solution:
Minepanel now strips ANSI escape sequences from command responses before returning them to the frontend.
Still Having Issues?
Collect Debug Information
# System info
uname -a
docker --version
docker compose version
# Container status
docker compose ps
# Recent logs
docker compose logs --tail 200 > minepanel-logs.txt
# System resources
docker stats --no-stream
# Disk space
df -hGet Help
- Check the FAQ for common questions
- Search GitHub Issues
- Create a new issue with:
- Your debug information
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
Emergency Reset
If nothing works and you need to start fresh:
DANGER
This removes EVERYTHING!
# Stop everything
docker compose down -v
# Remove all data
rm -rf data/ servers/
# Remove images
docker rmi ketbom/minepanel
# Start fresh
docker compose up -dNext Steps
- Review Administration Guide
- Check Configuration Reference
- Join the community for support
