Troubleshooting
Common issues and how to resolve them.
SSH Connection Fails
The platform cannot connect to your server over SSH.
Check these:
- IP address — verify the server IP in your dashboard matches the actual server IP.
- Port 22 — confirm SSH is running and port 22 is open in your firewall.
- Firewall rules — if you use a cloud firewall (AWS Security Groups, DigitalOcean Firewall, etc.), ensure port 22 is allowed from all sources or at least from ServerPlane's IP.
- SSH credentials — the SSH key on the platform must match the authorized key on the server. Re-check under Server Settings.
- SSH service — on the server, run
systemctl status sshdto confirm the SSH daemon is running.
Server Stuck in Provisioning
The server was added but provisioning never completes.
Check these:
- SSH access — try connecting manually:
ssh serverplane@YOUR_SERVER_IP. If this fails, see the SSH section above. - Server logs — check the provisioning log in the server detail page for specific error messages.
- Fresh OS — provisioning expects a clean Ubuntu 24.04 installation. Pre-existing configurations (especially for Nginx, Apache, or PHP) can cause conflicts.
- Resources — ensure the server has at least 512 MB of RAM and sufficient disk space for package installation.
Deployment Fails
An application deployment does not complete successfully.
Check these:
- Domain DNS — if your app uses a custom domain, verify the A record points to the server's IP address. Use
dig yourdomain.comto confirm. - Server resources — check that the server has enough RAM and disk space. Out-of-memory errors are a common cause of failed builds (especially Node.js).
- App logs — check the deployment log in the app detail page. The log shows each step and where the failure occurred.
- Build commands — for Node.js and Python apps, ensure your build commands (e.g.,
npm install,pip install) are correct and that required runtime versions are available. - File permissions — ensure the application directory is owned by the correct user.
SSL Provisioning Fails
Let's Encrypt SSL certificate issuance does not complete.
Check these:
- Domain DNS — the domain's A record must point to your server's IP address. Let's Encrypt validates domain ownership via HTTP, so DNS must be fully propagated.
- Port 80 open — Let's Encrypt uses HTTP-01 challenge validation, which requires port 80 to be open and accessible from the internet.
- No existing certificate — if a certificate already exists for the domain, the renewal may behave differently. Check
/var/log/letsencrypt/letsencrypt.logon the server. - Rate limits — Let's Encrypt enforces rate limits (50 certificates per registered domain per week). If you have been issuing many certificates, you may need to wait.
Database Connection Issues
Your application cannot connect to its database.
Check these:
- Engine running — on the server, check the database service status:
- MariaDB:
systemctl status mariadb - PostgreSQL:
systemctl status postgresql - MongoDB:
systemctl status mongod
- MariaDB:
- Credentials — verify the database name, username, and password in your app's environment variables match what was created in the Databases section.
- Host — for apps on the same server, use
127.0.0.1orlocalhostas the database host. - Port — confirm the default port is correct: MariaDB (3306), PostgreSQL (5432), MongoDB (27017).
Agent Shows Offline
The server agent is installed but shows as offline in the dashboard.
Check these:
- Agent service — on the server, check if the agent systemd service is running:
systemctl status serverplane-agent - Restart the agent — if the service is stopped or failed:
systemctl restart serverplane-agent - Network — the agent needs outbound HTTPS access to communicate with https://serverplane.xyz. Check that outbound connections on port 443 are not blocked.
- Logs — check agent logs for errors:
journalctl -u serverplane-agent —no-pager -n 50
File Upload Fails
Uploading a file through the file manager does not complete.
Check these:
- File size — the file manager has a maximum upload size limit. Large files should be transferred via SFTP instead.
- Disk space — ensure the server has sufficient free disk space. Run
df -hon the server to check. - Permissions — the target directory must be writable by the application user.
- Network timeout — very large files or slow connections may cause the upload to time out. Use SFTP for files larger than a few megabytes.