When your server won't start

How to read the console from the first error down, tell an install failure from a code error, and fix the handful of problems that stop most app servers.

When a server won't start, the console already contains the answer. The trick is reading it in the right order — and knowing which half of the startup it came from. Get that, and most "it won't start" problems fix themselves in a minute.

At a glance
Symptom Server won't start, or starts then stops
First move Read the console from the top, not the bottom
Two phases Install (packages), then your app (your code)

Read the console from the top

When you press Start, the console fills with output. A single failure early on usually causes a cascade of later complaints, so the bottom of the log is often just noise. The first thing that went wrong is the thing to fix.

💡 Tip: Your instinct is to look at the last line — resist it. Scroll up to the first error.

Install phase vs your app

Every start happens in two stages, and knowing which one failed tells you where to look:

  1. The install phase. Before your code runs, the application installs your dependencies — you'll see npm output for Node, pip for Python, and so on. Errors here are about packages, not your logic.
  2. Your app. Once install finishes, your own code runs, and any error after that point is about your code (or its configuration).

If the log never gets past the install output, fix the install first — your code hasn't even run yet. A red npm error line, or ERROR: Could not find a version that satisfies the requirement… for pip, is an install failure with its own walkthrough: Install failures.

💡 Tip: A long pause on the install output usually isn't a hang. First installs download — and sometimes compile — your packages (native Node modules, a Rust or TypeScript build, next build), which can take a few minutes. Give it time before assuming it froze; if it genuinely never moves, press Stop then Start to try again.

The common ones

What you see What it means The fix
Cannot find module 'express' (Node) A package your code needs isn't installed. Add it on the Packages page, then restart. The console also pops up a diagnostic with an Open Packages button — and often a one-click Install right there.
ModuleNotFoundError: No module named 'requests' (Python) The same thing on the Python side. Same fix — install it from the Packages page and restart.
Cannot find module '/home/container/index.js' (Node) or can't open file '.../app.py' (Python) The application can't find your entry file — wrong name, or it's sitting in a subfolder. Check the Main file (Node) or App py file (Python) variable in Settings matches your real filename, and that the file is in the server's root folder.
SyntaxError / IndentationError A typo in your code — this one isn't a Falix problem. Open the file and line the error names, fix it, restart.
TokenInvalid (discord.js) or LoginFailure: Improper token has been passed (discord.py) Your bot token is wrong, blank, or was reset. Put the correct token in your .env. See Environment variables and secrets.
host not found in SERVER_PORT (PHP Web Server) The fresh PHP Web Server ships a config that doesn't fill in the port, so nginx crash-loops. Deploy the PHP Website template — it ships the corrected config. See one-click templates.

"It started, then stopped" isn't always a crash

If the console runs cleanly and then the server just stops, your program may have finished. A script that does its work and returns exits normally — nothing is wrong. Only things designed to keep running (a web server, a Discord bot) stay online, because they keep waiting for requests or events. More on this in Keeping your app online.

🎯 Good to know: If your app was never meant to keep running, a clean stop is the correct outcome.

Stuck on "Starting", never "Online"

The panel flips a server to Online only when it spots a specific "ready" line in the console — for the Node application that line contains the word Listening. If your app is actually running but never prints such a line, the status can sit on Starting forever even though everything works. Check which of these it is:

  • It's actually serving. If your app's Network address loads in a browser (or your bot responds), it's fine — it just never printed the word the panel watches for. Add a startup log line like console.log('Listening on port ' + port) and the status will flip.
  • It's still installing or building. A first start that compiles native modules or runs a build can sit on Starting for minutes. That's the install phase, not a freeze — see above.
  • Neither. If it's not serving and not installing, treat it as a crash: read the console from the top.

Still stuck?

Was this guide helpful?