egametang/ET · error
service discovery proxy message sender is null, scene: {self
Error message
service discovery proxy message sender is null, scene: {self.Root().Name} What it means
Error "service discovery proxy message sender is null, scene: {self.Root().Name}" thrown in egametang/ET.
Source
Thrown at Packages/cn.etetet.servicediscovery/Scripts/Hotfix/Server/ServiceDiscoveryProxySystem.cs:726
return ServiceDiscoveryHelper.GetServiceInfoByFilter(self.SceneNameServices, self.ServicesIndexs, filterMetadata);
}
public static ServiceInfo GetByName(this ServiceDiscoveryProxy self, string name)
{
return self.SceneNameServices[name];
}
#endregion
#region 兼容调用面
public static async ETTask<IResponse> Call(this ServiceDiscoveryProxy self, string sceneName, IRequest request, bool needException = true)
{
ServiceInfo serviceInfo = self.GetServiceInfo(sceneName);
MessageSender messageSender = self.Root().GetComponent<MessageSender>();
if (messageSender == null)
{
throw new Exception($"service discovery proxy message sender is null, scene: {self.Root().Name}");
}
return await messageSender.Call(serviceInfo.ActorId, request, needException);
}
#endregion
}
}
View on GitHub (pinned to 5cab01f7a8)
Solutions
- 确认该 Scene 上已挂载消息发送组件(MessageLocationSenderComponent)
- 确认在 FiberInit 初始化完成之后再发起 service discovery 请求
- 检查场景类型是否属于应挂载消息发送组件的进程内 Scene
Example fix
在 FiberInit 中确保 AddComponent<MessageLocationSenderComponent>() 早于任何 Send 调用执行。
When it happens
Trigger: ServiceDiscoveryProxy 场景尚未初始化 MessageSender 组件(Scene 上缺少 MessageLocationSenderComponent 或初始化尚未完成)就发送消息
Common situations: See trigger scenarios.
AI-assisted analysis of egametang/ET@5cab01f7a8 (2026-08-13).
Data as JSON: /api/errors/9b8ce227d5b6bf00.
Report an issue: GitHub.