2 months ago
Hi Railway Team,
I need help. I've been on Railway Pro for 13 days ($20/mo), but my Node.js service is completely non-functional due to a platform-level memory limitation.
## Problem
Node.js heap is hard-capped at ~14 MB, preventing my production API from operating.
- Current heap: 14.10 MB
- Required: 512 MB minimum
- Status: Circuit breaker blocking all traffic at 83% memory
- Downtime: 13 days (100% of Pro subscription)
- Service: https://specular-production.up.railway.app
## Impact
- 49 users blocked
- $32,000 in user capital inaccessible
- Paying $20/mo for 0% uptime
## What I've Tried (All Failed)
I've systematically tried every configuration method over 13 days. All failed:
**1. Environment Variable (March 1)**NODE_OPTIONS=--max-old-space-size=512
Result: Ignored. Heap: 13.86 MB
**2. package.json start script**
```json
"start": "node --max-old-space-size=512 src/api/MultiNetworkAPI.js"Result: Ignored. Heap: 14.11 MB
3. railway.json startCommand
"startCommand": "NODE_OPTIONS='--max-old-space-size=512' npm start"Result: Ignored. Heap: 14.36 MB
4. nixpacks.toml
[variables]
NODE_OPTIONS = "--max-old-space-size=512"Result: Ignored. Heap: 14.61 MB
5. Custom Dockerfile (TODAY)
CMD ["node", "--max-old-space-size=512", "src/api/MultiNetworkAPI.js"]"build": {"builder": "DOCKERFILE"}Result: STILL IGNORED. Heap: 14.10 MB
Evidence: https://specular-production.up.railway.app/stats
What This Proves
Even with a custom Dockerfile where I have full control over the Node.js start command, Railway is overriding the heap allocation at the platform level.
This is NOT a configuration issue. Railway is enforcing a ~14 MB limit that ignores:
- Environment variables
- Start command flags
- Dockerfile CMD directives
Previous Support Attempt
March 1: Railway suggested NODE_OPTIONS=--max-old-space-size=512
- Already tried (was our first attempt)
- Still failed
- No follow-up response for 12 days
What I Need
Option 1 (Preferred): Engineering Investigation - 48 Hours
Urgent review of:
- Why is Railway overriding Dockerfile CMD memory flags?
- Is there a platform limitation on Node.js heap?
- Are Pro resources properly provisioned?
Option 2: Full Refund + Migration
If unfixable within 48 hours:
- Refund for 13 days of non-working service
- I'll migrate to alternative platform
Why This Is Urgent
After 13 days:
- ✅ Tried all 5 configuration methods
- ✅ Provided custom Dockerfile with explicit control
- ✅ Proven it's a platform issue
- ✅ Paying for 0% uptime
I cannot wait longer. Users are blocked and I'm paying for a broken service.
Technical Details
Test locally (same Dockerfile):
docker build -t specular .
docker run specularResult: 512 MB heap allocated ✅
Railway deployment:
Result: 14 MB heap ❌
Conclusion: Railway is overriding Docker CMD at runtime.
Next Steps
If no substantive response within 48 hours, I will:
- Request chargeback
- Migrate to Render/Fly.io
- Document publicly
I prefer to stay with Railway, but need this resolved urgently.
Project: Specular
GitHub: github.com/thegrand-canyon/specular
Live endpoint: https://specular-production.up.railway.app/stats
Available for immediate debugging session with your team.
9 Replies
2 months ago
This question appears to be about your application code rather than the Railway platform, which is outside the scope of what we can help with.
Status changed to Awaiting User Response Railway • about 2 months ago
2 months ago
This thread has been marked as solved automatically due to a lack of recent activity. Please re-open this thread or create a new one if you require further assistance. Thank you!
Status changed to Solved Railway • about 2 months ago
Railway
This question appears to be about your application code rather than the Railway platform, which is outside the scope of what we can help with.
a month ago
I just need help updating my memory on Railway. I have been paying for Pro for months now and my memory has still not been updated.
Status changed to Awaiting Railway Response Railway • 26 days ago
a month ago
This thread has been marked as public for community involvement, as it does not contain any sensitive or personal information. Any further activity in this thread will be visible to everyone.
Status changed to Open Railway • 26 days ago
a month ago
Hello thegrand-canyon,
can you check one thing , go to your service settings → deploy → replica limits and see if there's a memory limit set there if it's set too low (even a few mb) that creates a hard container ceiling that overrides everything including dockerfile cmd and node_options railway docs say "setting replica limits too low will cause your service to crash" if that's the culprit just remove or raise the limit and redeploy
Hope this help you :)
a month ago
Hey, thanks for the response. In my settings, the replica limits are already maxed out, but that's not the case when using Railway.
thegrand-canyon
Hey, thanks for the response. In my settings, the replica limits are already maxed out, but that's not the case when using Railway.
a month ago
okay , what does your /stats endpoint actually show right now, and can you share your deploy logs from the latest dockerfile deployment?
a month ago
Is Replica limits the same as heap limits? I can't find anything that says 'heap limits'.
thegrand-canyon
Is Replica limits the same as heap limits? I can't find anything that says 'heap limits'.
a month ago
no they're different things replica limits cap the container's total memory and heap is just the node.js portion inside it can you screenshot your replica limits settings so i can see the exact values?
domehane
no they're different things replica limits cap the container's total memory and heap is just the node.js portion inside it can you screenshot your replica limits settings so i can see the exact values?
a month ago
Yes, I have the limits set to the max.
Attachments
thegrand-canyon
Yes, I have the limits set to the max.
a month ago
okay, can you run this inside your dockerfile and share the output from the deploy logs:
RUN cat /sys/fs/cgroup/memory/memory.limit_in_bytes
this will show what memory limit the container actually sees at the cgroup level during build