localhost instead of 0.0.0.0.
Platform Errors
The errors below come from the platform, not your code: memory, container lifecycle, upload and plan limits.Application not starting / Crashing
OOMKilled — Application killed for lack of memory
OOMKilled — Application killed for lack of memory
Killed shows up in the logs.Cause: The app is using more RAM than what’s allocated.Fix:- Increase the allocated memory (try 50% more)
- Java/JVM needs 512 MB+, apps with Puppeteer need 512 MB+
- Optimize the code to reduce memory usage
Crash loop — Auto-restart disabled
Crash loop — Auto-restart disabled
- Check the logs to identify the root error
- Fix the issue and redeploy
- Syntax errors and exit code 0 do NOT trigger auto-restart — the app simply stops
Application stops immediately (exit code 0)
Application stops immediately (exit code 0)
- For bots: make sure the client is logging in (
client.login(token)) - For servers: make sure
app.listen()is being called - Check that
process.exit()isn’t being called accidentally
Deploy Errors
ZIP too large (max 100 MB)
ZIP too large (max 100 MB)
node_modules, venv, .git, etc).Fix: Exclude these before zipping:- JS/TS:
node_modules,.npm,.next,dist - Python:
venv,.venv,__pycache__,.cache - Go:
vendor| Rust:target| .NET:bin,obj| Elixir:_build,deps| Java:target,.gradle,build
Dependency installation exceeds the time limit (15 minutes)
Dependency installation exceeds the time limit (15 minutes)
INSTALL_TIMEOUT.Fix:- Remove unnecessary dependencies
- For large Node.js apps, consider running
npm installlocally and including only what’s needed
Build command fails or exceeds the time limit (10 minutes)
Build command fails or exceeds the time limit (10 minutes)
build_command (the BUILD field in vertracloud.config) ended with an error
(BUILD_FAILED) or didn’t finish in time (BUILD_TIMEOUT). It runs after dependency
installation and before the application starts, in an environment with 2× the application’s
RAM. A new application is still created, stopped, with the build output in its
logs.Fix:- Run the command locally to see the real error
- Simplify the build or increase the application’s memory (the build environment scales with it)
Deploys-per-hour limit reached
Deploys-per-hour limit reached
DEPLOY_RATE_LIMITED.Fix:- Wait for the time indicated in
details.retry_after - Restarting and stopping the application don’t count against this limit
Invalid ZIP structure
Invalid ZIP structure
my-project/src/index.js instead of src/index.js).Fix: The files must be at the root of the ZIP, not inside an extra subfolder.Network Errors
Site returns a timeout / Connection refused
Site returns a timeout / Connection refused
localhost or 127.0.0.1 instead of 0.0.0.0.Fix:0.0.0.0 as the host and the port configured in PORT.Custom domain not working
Custom domain not working
- Confirm your plan is Starter 2 or above (custom domains)
- Check that the CNAME record points to the address shown in the domain’s DNS records
- On a root domain (
example.com), your DNS provider must support CNAME flattening - A domain that stays without DNS for 14 days is removed automatically; delete its
CNAMEandTXTrecords at your DNS provider afterwards - DNS propagation can take up to 48 hours
- SSL is provisioned automatically after validation
Database Errors
Connection refused / SSL required
Connection refused / SSL required
- Download the three certificate files in the database’s Certificates tab
- Pass the client certificate (
.crt+.key) and use the.pemas the CA — every engine requires it - Use the database’s own port shown on its page — it’s not 5432, 27017, 6379 or 3306
- For MongoDB, add
authSource=adminto the URI - See How do I connect to each engine?
Too many open connections
Too many open connections
- Use connection pooling in your database client
- Reduce the number of simultaneous connections
- Increase the database’s memory if needed
Platform Protections
Application paused by Vertra Shield
Application paused by Vertra Shield
- Wait for the time shown in the dashboard before starting or restarting the application.
- Review the code: look for infinite loops, unbounded recursive calls, or uncontrolled bulk requests.
- Add rate limiting: implement per-IP or per-session request limits in your code.
- Fix the cause before the pause ends: start, restart, deploy, configuration changes and deleting the application stay blocked until then, and repeated occurrences make the next pause longer.
Node.js / JavaScript
Cannot find module 'xxx' / MODULE_NOT_FOUND
Cannot find module 'xxx' / MODULE_NOT_FOUND
dependencies in package.json, or is only in devDependencies.Fix: Without a build command, the platform installs only dependencies; with one, it installs devDependencies too. If the package is needed at runtime, move it to dependencies:npm ERR! missing script: start
npm ERR! missing script: start
package.json has no start script defined.Fix: Add to package.json:START field in vertracloud.config.SyntaxError: Cannot use import statement outside a module
SyntaxError: Cannot use import statement outside a module
import (ES Module) in a CommonJS project.Fix: Add to package.json:require().ERR_REQUIRE_ESM — require() of ES Module not supported
ERR_REQUIRE_ESM — require() of ES Module not supported
require() on a package that only supports ESM (e.g. node-fetch v3+, chalk v5+).Fix: Switch to ESM ("type": "module") or use an older version of the package (e.g. node-fetch@2).ERESOLVE — unable to resolve dependency tree
ERESOLVE — unable to resolve dependency tree
.npmrc file at the project root with:Error: listen EADDRINUSE
Error: listen EADDRINUSE
app.listen() in the code. Use the environment’s PORT variable.Could not locate the bindings file (better-sqlite3)
Could not locate the bindings file (better-sqlite3)
node_modules/ in the upload. The platform compiles native modules for Linux automatically.TypeScript
tsx / ts-node: command not found
tsx / ts-node: command not found
tsx or ts-node to dependencies:TSError: Unable to compile TypeScript
TSError: Unable to compile TypeScript
tsconfig.json.Fix: Include tsconfig.json in the upload. Fix all TS errors locally before deploying. Consider pre-compiling and uploading dist/.Python
ModuleNotFoundError: No module named 'xxx'
ModuleNotFoundError: No module named 'xxx'
requirements.txt.Fix: Generate the file with:requirements.txt not found
requirements.txt not found
.txt.txt — common on Windows).Fix: Check the file’s exact name. On Windows, enable “show file extensions” to verify.SyntaxError: invalid syntax
SyntaxError: invalid syntax
match/case from 3.10 on runtime 3.9).Fix: Select the correct Python version in the configuration. Use VERSION=recommended for the latest stable version.UnicodeDecodeError / Encoding errors
UnicodeDecodeError / Encoding errors
encoding='utf-8' when opening files:Flask/Django not accessible externally
Flask/Django not accessible externally
127.0.0.1.Fix: Use Gunicorn for production:Go
go.mod not found / cannot find main module
go.mod not found / cannot find main module
go.mod is missing from the project root.Fix:go.mod and go.sum in the upload.Build fails / Incompatible binary
Build fails / Incompatible binary
go.mod and go.sum. If uploading a binary, compile it for Linux:Java
no main manifest attribute, in app.jar
no main manifest attribute, in app.jar
Main-Class in MANIFEST.MF.Fix: Configure the build tool to produce a fat JAR. For Maven, use maven-shade-plugin or spring-boot-maven-plugin.OutOfMemoryError: Java heap space
OutOfMemoryError: Java heap space
PHP
Dependencies not installed / composer.json not found
Dependencies not installed / composer.json not found
composer.json is missing from the root, or vendor/ was uploaded (which may be incompatible).Fix: Include composer.json and composer.lock at the root. Don’t upload the vendor/ directory.Discord Bots
An invalid token was provided / Improper token
An invalid token was provided / Improper token
- Generate a new token in the Discord Developer Portal
- Set it as an environment variable (don’t hardcode it in the code)
- Restart the application after updating it
Used disallowed intents / DisallowedIntents
Used disallowed intents / DisallowedIntents
- Message Content Intent (to read message content)
- Server Members Intent (for member events)
- Presence Intent (for presence status)
Valid intents must be provided / ClientMissingIntents
Valid intents must be provided / ClientMissingIntents
Bot goes offline randomly
Bot goes offline randomly
- Increase the allocated memory
- Update discord.js/discord.py to the latest version
- Check for memory leaks
on_message doesn't work (discord.py)
on_message doesn't work (discord.py)
message_content intent is missing (required since discord.py 2.0+).Fix:Environment Variables
undefined / null values in the configuration
undefined / null values in the configuration
.env.example to document which variables are required..env file doesn't work on the platform
.env file doesn't work on the platform
.env files automatically.Fix: Configure the variables through the Vertra Cloud dashboard (Environment Variables tab) or via the API. Don’t rely on dotenv loading from a .env file in production.