egametang/ET · error · Exception
not found handler: {message}
Error message
not found handler: {message} What it means
Thrown by the NetClient message dispatcher (NetComponentOnReadInvoker_NetClient) when an incoming message does not match ISessionRequest/ISessionMessage (dispatched via MessageSessionDispatcher) or IMessage (forwarded to the parent fiber via ProcessInnerSender). Any message type outside these interfaces hits the default throw.
Source
Thrown at Packages/cn.etetet.login/Scripts/Hotfix/Client/NetClient/NetComponentOnReadInvoker_NetClient.cs:36
{
session.OnResponse(response);
break;
}
case ISessionMessage:
{
MessageSessionDispatcher.Instance.Handle(session, message);
break;
}
case IMessage iActorMessage:
{
// 扔到Main纤程队列中
long parentFiberId = fiber.Root.GetComponent<FiberParentComponent>().ParentFiberId;
fiber.Root.GetComponent<ProcessInnerSender>().Send(new FiberInstanceId(parentFiberId), iActorMessage);
break;
}
default:
{
throw new Exception($"not found handler: {message}");
}
}
}
}
}
View on GitHub (pinned to 5cab01f7a8)
Solutions
- Identify the message type from the error and add the appropriate case or ensure it implements one of the known interfaces (ISessionRequest, ISessionMessage, IMessage).
- Verify client and server share the same message protocol definitions and both are rebuilt.
- Check that the message is being sent to the correct scene/connection type.
Example fix
// before: unknown message type hits default throw
default:
throw new Exception($"not found handler: {message}");
// after: log and skip instead of crashing, or add the missing case
default:
Log.Error($"not found handler: {message}");
break; Defensive patterns
Strategy: try-catch
Try / catch
try { HandleMessage(session, message); } catch (Exception e) { Log.Error($"NetClient dispatch failed for {message?.GetType().Name}: {e}"); } Prevention
- Ensure all expected message types implement ISessionRequest, ISessionMessage, or IMessage.
- Keep client and server message protocol definitions in sync — rebuild both when messages change.
- Log unrecognized message types instead of crashing to aid debugging in production.
When it happens
Trigger: A message is received on the NetClient session that implements neither ISessionRequest, ISessionMessage, nor IMessage. This means the message protocol type is unrecognized by the NetClient dispatcher's switch.
Common situations: Client and server message definitions are out of sync — a new message type was added on one side without updating the other. A message was routed to the NetClient scene that belongs to a different scene type. A raw/binary message arrived without a proper message interface.
Related errors
- not found handler: {message}
- not found handler: {message}
- Only IPv4 addresses are supported
- default conn throw Exception! {channelId}
- bufferList length < count, {Length} {count}
AI-assisted analysis of egametang/ET@5cab01f7a8 (2026-08-13).
Data as JSON: /api/errors/be3b11349bd4188c.
Report an issue: GitHub.