egametang/ET · critical · Exception
RouterManagerAddressComponent is missing on RouterManager sc
Error message
RouterManagerAddressComponent is missing on RouterManager scene.
What it means
After finding the RouterManager fiber, GetRouterManagerAddress reads RouterManagerAddressComponent.Address and throws if it is null or whitespace. The component exists but never had its address populated, so robots can't resolve the router endpoint.
Source
Thrown at Packages/cn.etetet.robot/Scripts/Hotfix/Server/RobotManagerComponentSystem.cs:69
robotLoginRequest.Address = routerManagerAddress;
await processInnerSender.Call(new FiberInstanceId(robot, 1), robotLoginRequest);
self = selfRef;
self.robots.Add(account, robot);
return robot;
}
private static string GetRouterManagerAddress(this RobotManagerComponent self)
{
Fiber routerManagerFiber = self.Fiber().GetFiber("RouterManager");
if (routerManagerFiber == null)
{
throw new Exception($"RouterManager fiber not found under fiber: {self.Fiber().Name}");
}
string address = routerManagerFiber.Root.GetComponent<RouterManagerAddressComponent>()?.Address;
if (string.IsNullOrWhiteSpace(address))
{
throw new Exception("RouterManagerAddressComponent is missing on RouterManager scene.");
}
return address;
}
}
}
View on GitHub (pinned to 5cab01f7a8)
Solutions
- Check the RouterManager fiber's logs for an AddHttpComponent failure (error 319) — that prevents Address assignment.
- Ensure AddressSingleton.OuterIP is populated before RouterManager initializes.
- Delay robot spawning until RouterManagerAddressComponent.Address is non-empty (add a readiness check).
- Verify FiberInit_RouterManager is registered for the RouterManager scene type.
Defensive patterns
Strategy: validation
Validate before calling
// Readiness check before spawning robots
var rm = self.Fiber().GetFiber("RouterManager");
var addr = rm?.Root.GetComponent<RouterManagerAddressComponent>()?.Address;
if (string.IsNullOrWhiteSpace(addr)) {
Log.Error("RouterManagerAddressComponent.Address not ready; delaying robot spawn");
return;
} Prevention
- Gate robot spawning on RouterManagerAddressComponent.Address being non-empty.
- Investigate FiberInit_RouterManager logs if Address never populates (likely error 319).
- Add a readiness timer/check rather than throwing on first attempt.
When it happens
Trigger: GetRouterManagerAddress finds the RouterManager fiber but routerManagerFiber.Root.GetComponent<RouterManagerAddressComponent>()?.Address is null/empty. This means FiberInit_RouterManager either didn't run or failed before setting Address.
Common situations: RouterManager fiber initialized but FiberInit_RouterManager.AddHttpComponent threw (see error 319) before Address was assigned; RouterManagerAddressComponent was removed/never added; AddressSingleton.OuterIP not yet resolved when the fiber initialized; race where robots query before the RouterManager finished binding its HTTP port.
Related errors
- RouterManager fiber not found under fiber: {self.Fiber().Nam
- location proxy message sender is null: {self.Root().Name}
- ERR_LocationPrimaryUnavailable
- condition variable registry is not initialized
- You have not initialized HybridCLR, please install it via me
AI-assisted analysis of egametang/ET@5cab01f7a8 (2026-08-13).
Data as JSON: /api/errors/1e38d0bc86a010f3.
Report an issue: GitHub.