Reproduction steps
- While logged in, reopen the installed webapp (which opens /app)
- Observe permanent skeleton UI on every load
- Open Console: [Router] initial guard check failed RuntimeConfigUnavailableError: No instance runtime is active, gateway then READYs, every REST call fails RestRuntimeUnavailableError
- In the same window, change the location to any channel (e.g. "location.href='/channels/@me'") -> fixed
- Reverse check: open any instance webpage with a logged in account at /app -> breaks identically
Expected behaviour
/app boots into the signed-in session like channel URLs do.
Actual behaviour
/app boots through the signed-out document flow and no runtime is ever activated: router guard rejects, skeleton forever, gateway READY + live events continue behind the dead UI. Clicking a chat notification in this state crashes the app (MobX error 32 in the directMessagesDisabled derivation, get community, RuntimeConfig.ts:270).
(Also reproduced on the official instance on pre-13:54-UTC builds; official no longer reproduces after the branding-before-boot cluster (#3396), self-hosted 125122 still does.)
Build information
Canary Web 2026.1011.125122, Linux (x86), Chrome 154.0.0.0, Locale en-US
Platform
Windows, Linux, Web, Self-hosting
Evidence
AppLogger.ts:141 [16:20:21] [Router] [Error] initial guard check failed RuntimeConfigUnavailableError: No instance runtime is active
at Object.readableSnapshot (RuntimeConfig.ts:292:10)
at eA (mobx.mjs:1077:15)
at Object.readableSnapshot (mobx.mjs:1064:12)
at eR (mobx.mjs:1606:16)
at eE.computeValue_ (mobx.mjs:1451:13)
at eE.trackAndCompute (mobx.mjs:1428:27)
at eE.get (mobx.mjs:1393:18)
at t9.getObservablePropValue_ (mobx.mjs:4516:23)
at Object.get (mobx.mjs:4969:26)
AppLogger.ts:141 [16:20:21] [MediaEngineFacade] [Info] Voice engine v2 prewarm completed Object
AppLogger.ts:141 [16:20:21] [ElectronScreenSharePicker] [Info] Screen share picker unavailable (missing platform handler)
AppLogger.ts:141 [16:20:21] [GatewayConnection] [Info] Using gateway compression: zstd-stream
AppLogger.ts:141 [16:20:21] [Gateway] [Info] Gateway state DISCONNECTED -> CONNECTING
AppLogger.ts:141 [16:20:21] [GatewayWireTransport] [Info] Adopted the preboot gateway socket with 1 buffered message(s)
AppLogger.ts:141 [16:20:21] [Gateway] [Info] Gateway connection established
AppLogger.ts:141 [16:20:21] [Gateway] [Info] Sending IDENTIFY to gateway
AppLogger.ts:141 [16:20:21] [Gateway] [Info] Gateway state CONNECTING -> CONNECTED
AppLogger.ts:141 [16:20:21] [Gateway] [Info] Gateway READY, session=<redacted>, ready_ms=195
AppLogger.ts:141 [16:20:21] [ExperimentAssignments] [Warn] Experiment assignment request failed: RestRuntimeUnavailableError: A relative REST request requires an active instance runtime
at Object.dispatchAccountScoped (RestTransport.ts:260:26)
at Object.dispatch (RestTransport.ts:240:15)
at Object.get (RestTransport.ts:280:15)
at Object.<anonymous> (ExperimentAssignments.ts:233:27)
at Generator.next (<anonymous>)
at s (9995a8b891d7a840.js:2:166523)
at l (9995a8b891d7a840.js:2:166720)
AppLogger.ts:141 [16:20:21] [Premium] [Error] Premium state fetch failed RestRuntimeUnavailableError: A relative REST request requires an active instance runtime
at Object.dispatchAccountScoped (RestTransport.ts:260:26)
at Object.dispatch (RestTransport.ts:240:15)
at Object.get (RestTransport.ts:280:15)
at Generator.next (<anonymous>)
at u (a51a01fb2309e813.js:9:312770)
at s (a51a01fb2309e813.js:9:312967)
AppLogger.ts:141 [16:20:21] [AccountReadyWork] [Warn] Failed to refresh premium state after READY RestRuntimeUnavailableError: A relative REST request requires an active instance runtime
at Object.dispatchAccountScoped (RestTransport.ts:260:26)
at Object.dispatch (RestTransport.ts:240:15)
at Object.get (RestTransport.ts:280:15)
at Generator.next (<anonymous>)
at u (a51a01fb2309e813.js:9:312770)
at s (a51a01fb2309e813.js:9:312967)
at i (/assets/7a750277fc989333.js:1:13257)
at eE.get (/assets/7a750277fc989333.js:1:26160)
at t9.getObservablePropValue_ (/assets/7a750277fc989333.js:1:53276)
at Object.get (/assets/7a750277fc989333.js:1:57968)
at eR (/assets/7a750277fc989333.js:1:28363)
at eY.track (/assets/7a750277fc989333.js:1:32954)
at l (/assets/6b5e68203fc145fe.js:1:481457)