egametang/ET · error · RpcException
ERR_ServiceDiscoveryOperationFailed
ERR_ServiceDiscoveryOperationFailed
Error message
route service invalid local cache sceneType: {sceneTypeName} What it means
Error "route service invalid local cache sceneType: {sceneTypeName}" thrown in egametang/ET.
Source
Thrown at Packages/cn.etetet.servicediscovery/Scripts/Hotfix/Server/ServiceDiscoveryProxySystem.cs:497
if (compare != 0)
{
return compare;
}
compare = left.FiberInstanceId.Fiber.CompareTo(right.FiberInstanceId.Fiber);
if (compare != 0)
{
return compare;
}
return left.FiberInstanceId.InstanceId.CompareTo(right.FiberInstanceId.InstanceId);
}
private static void ValidateServiceInfo(ServiceInfo serviceInfo, string sceneTypeName)
{
if (serviceInfo == null || string.IsNullOrWhiteSpace(serviceInfo.SceneName) || serviceInfo.ActorId == default)
{
throw new RpcException(ErrorCode.ERR_ServiceDiscoveryOperationFailed,
$"route service invalid local cache sceneType: {sceneTypeName}");
}
}
private static async ETTask WaitResolveRetryDelayAsync(this ServiceDiscoveryProxy self)
{
int delay = self.ServiceResolveRetryIntervalMs;
if (delay <= 0)
{
delay = 1;
}
Scene root = self.Root();
EntityRef<Scene> rootRef = root;
await root.TimerComponent.WaitAsync(delay);
root = rootRef;
if (root == null)
{View on GitHub (pinned to 5cab01f7a8)
Solutions
- 检查该 sceneType 的服务是否已正确注册且实例存活
- 清除本地路由缓存后重新向 ServiceDiscovery 解析该 sceneType 的路由
- 确认注册时 ServiceRoute 的 ActorId 不为空
Example fix
等待服务重新注册后重试解析,或在调用前校验 route.ActorId 非空再使用缓存路由。
When it happens
Trigger: service discovery 本地路由缓存中该 sceneType 对应的 ServiceRoute 已存在但内容无效(ActorId 为空或实例已失效)
Common situations: See trigger scenarios.
AI-assisted analysis of egametang/ET@5cab01f7a8 (2026-08-13).
Data as JSON: /api/errors/ad30dd505f833979.
Report an issue: GitHub.