19 days ago
deployed logs
You reached the start of the range
May 3, 2026 at 5:05 PM
npm warn config production Use --omit=dev instead.
> legendary-productivity@1.0.0 start
> node backend/server.js
π PORT: 8080
π HOST: 0.0.0.0
π OPENAI_API_KEY: NOT SET
π GEMINI_API_KEY: NOT SET
π Frontend served from: /app/frontend/dist
π VAPID_PUBLIC_KEY: NOT SET
Legendary Productivity Backend running on http://0.0.0.0:8080
GEMINI_API_KEY not set in .env
[push] VAPID keys are not set. Set VAPID_PUBLIC_KEY and VAPID_PRIVATE_KEY in .env
π Starting Legendary Productivity Server
Starting Container
build logs
stage-0
RUN nix-env -if .nixpacks/nixpkgs-ffeebf0acf3ae8b29f8c7049cd911b9636efd7e7.nix && nix-collect-garbage -d cached
0ms
stage-0
COPY .nixpacks/nixpkgs-ffeebf0acf3ae8b29f8c7049cd911b9636efd7e7.nix .nixpacks/nixpkgs-ffeebf0acf3ae8b29f8c7049cd911b9636efd7e7.nix cached
0ms
stage-0
WORKDIR /app/ cached
0ms
stage-0
RUN npm i
2s
found 0 vulnerabilities
stage-0
COPY . /app/.
1s
stage-0
RUN npm run build
18s
Run npm audit for details.
stage-0
RUN printf '\nPATH=/app/node_modules/.bin:$PATH' >> /root/.profile
688ms
stage-0
COPY . /app
198ms
exporting to docker image format
4s
containerimage.digest: sha256:830164742336e0e0cf5b6ed26ff56c3463710efdd12b063b6e1d25aa343bfd77
containerimage.descriptor: eyJtZWRpYVR5cGUiOiJhcHBsaWNhdGlvbi92bmQub2NpLmltYWdlLm1hbmlmZXN0LnYxK2pzb24iLCJkaWdlc3QiOiJzaGEyNTY6ODMwMTY0NzQyMzM2ZTBlMGNmNWI2ZWQyNmZmNTZjMzQ2MzcxMGVmZGQxMmIwNjNiNmUxZDI1YWEzNDNiZmQ3NyIsInNpemUiOjI3NjMsImFubm90YXRpb25zIjp7Im9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5jcmVhdGVkIjoiMjAyNi0wNS0wM1QxMTozNjoxMVoifSwicGxhdGZvcm0iOnsiYXJjaGl0ZWN0dXJlIjoiYW1kNjQiLCJvcyI6ImxpbnV4In19
containerimage.config.digest: sha256:edf4bdf3ed6f5614261b8772b93fc19e1a8c42b4fda16e936254c882fdc5687d
image push
296.6 MB / 296.6 MB12.2s
==================== Starting Healthcheck ====================
Path: /health
Retry window: 5m0s
[1/1] Healthcheck succeeded!
2 Replies
Status changed to Awaiting Railway Response Railway β’ 19 days ago
Status changed to Open Railway β’ 19 days ago
2 days ago
Your deployment logs look healthy β the app is running on port 8080 bound to 0.0.0.0 and the healthcheck passed. However, the title mentions "requests canceled - TLS/proxy issue", which typically means Railway's edge proxy is canceling requests before they reach your app.
A few things to check:
1. Make sure your app uses the PORT environment variable from Railway
Your logs show PORT: 8080 which looks correct, but confirm your server.js is reading process.env.PORT rather than hardcoding 8080. Railway sets PORT dynamically and routes HTTPS traffic through its proxy to that port:
const PORT = process.env.PORT || 8080;
app.listen(PORT, '0.0.0.0');2. Check if you're using a custom domain with a TLS issue
If you added a custom domain and TLS is stuck on "Issuing", try removing and re-adding the domain in Railway Dashboard β Service β Settings β Domains. Railway auto-provisions TLS certificates via Let's Encrypt, but DNS propagation can delay it.
3. Verify no middleware is crashing requests silently
Your logs show several keys are NOT SET (OPENAI_API_KEY, GEMINI_API_KEY, VAPID keys). If any middleware or route handler attempts to use these at request time without a null check, it could throw an unhandled exception that causes Railway's proxy to see the connection reset and cancel the request.
4. Check your request logs for specific errors
Go to Railway Dashboard β your service β Observability/Logs and filter by HTTP 4xx/5xx or look for crash logs around the time of a failed request. The specific error message there will narrow down whether it's a proxy timeout, TLS issue, or app-side crash.
Could you share what error you see in the browser (e.g., ERR_CONNECTION_RESET, ERR_SSL_PROTOCOL_ERROR, 502, 504) or in your Railway logs?
2 days ago
Hey, just to narrow it down when you hit the app URL, what exactly shows up? Like is it a browser error (ERR_CONNECTION_RESET, 502, 504) or does the page load but features don't work?
Also, in your Railway logs, do you see any new lines appear after that healthcheck passed line when you try making a request? Because the healthcheck hitting /health is lightweight it doesn't touch Gemini or OpenAI. But the moment a real request comes in and your code tries to use those unset API keys without a proper null check, the whole request handler could throw and kill the response silently.
Try hitting your Railway URL directly and then immediately check the logs if you see an unhandled promise rejection or TypeError: Cannot read properties of undefined right after your request, that's your culprit and it's fixable in like 2 minutes.