Server with no bridge in the login path sits silent and never sends a LoginRequest

Closed
#16 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@thesprockee is already working on this.

Since Oct 7, 2026.

  • #214 by @thesprockee — open

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
52/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
cpp, yaml

Research direction

Start in boot.cpp around line 495 and trace how services.socket_uri and direct URLs from _local/config.json determine whether ws_bridge starts. Read docs/reference/xpid.md and the local Nakama and Windows VM system-test references, then run just test-winvm. Done means server mode clearly fails nonzero, or reports an actionable error, when it cannot start the bridge and therefore cannot send LoginRequest.

Written by the indexing model from the issue text.

Description

bug

Symptom: a dedicated server starts, connects its login WebSocket, and then does nothing: no LoginRequest is ever sent, so it never logs in or registers. The engine log goes silent, hook_liveness ... ReceiveLocalEvent entries=0 and CAPTURED ZERO GAME LINES follow.

Evidence (production nakama log): three staggered instances from one host connected to /ws and sat there: connect, no messages, closed minutes later when killed. Instances that worked send a LoginRequest ~85 ms after connect. Nakama logged no rejection; it never received a request. The client console showed the game connecting directly to ws://<service>:80/login?... instead of the local bridge (ws://127.0.0.1:<port>), i.e. the bridge was not in the path. The same instances registered fine ~15 minutes later after a config change. Same signature as the 2026-09-13 finding in docs/reference/xpid.md.

Root cause class: the login LoginRequest is injected by ws_bridge. If the bridge is not started (no services.socket_uri in config.yaml, boot.cpp:495) or direct URLs from _local/config.json win over the redirect, nothing sends it. Today that is a warn and the server runs on, silent and useless.

Proposed: in server mode, treat "bridge not started" as fatal (like a missing _local/config.json already is), or at minimum error with the fix. A server that cannot log in should exit nonzero so a fleet manager notices, not idle.

Related: the just test-winvm system test (docs/reference/windows-vm-system-test.md) can assert this once it logs in against the local nakama (docs/reference/local-nakama.md).

Dominant language
C++
Stars
2
Forks
5
Avg merge
5h 8m
Merged PRs (30d)
911

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from EchoTools/nevr-runtime

All issues in EchoTools/nevr-runtime

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.