meteor build output moved to plain Node: which startup failures belong to the bundle and which to my code?
0 reputation · 02 Jun 2021, 03:10 UTC
0 reputation · 02 Jun 2021, 03:10 UTC
Meteor's documented deployment model is two-phase: meteor build emits a plain Node.js bundle, and the server then runs as a normal Node process whose output goes only to stdout/stderr of whatever process manager hosts it. Assume Meteor 2.x/3.x with a self-hosted bundle, not Galaxy.
When the deployed server crash-loops, the restart signature looks identical whether the cause is infrastructure (missing or unreachable MONGO_URL, memory limits, a Node version outside the range the bundle was built for) or application code (top-level server code throwing at boot). A ROOT_URL mismatch, by contrast, apparently does not crash the process but breaks absolute URLs and OAuth callbacks, so it should be distinguishable — but only if the log stream is being captured correctly in the first place.
Since Meteor writes no framework-specific log file, classification depends entirely on the host's log capture (systemd journal, Docker logs), and the bundle's own README documents the expected Node version per release.
A thoughtful contribution can make all the difference. Be the first to share one.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.