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

  1. Identify the message type from the error and add the appropriate case or ensure it implements one of the known interfaces (ISessionRequest, ISessionMessage, IMessage).
  2. Verify client and server share the same message protocol definitions and both are rebuilt.
  3. 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

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


AI-assisted analysis of egametang/ET@5cab01f7a8 (2026-08-13). Data as JSON: /api/errors/be3b11349bd4188c. Report an issue: GitHub.