UnaryFunc(func(ctx context.Context, request AnyRequest) (AnyResponse, error) { if err := ctx.Err(); err != nil { return nil, err } typed, ok := request.(*Request[Req]) if !ok { return nil, errorf(CodeInternal, "unexpected handler request type %T", request) } res, err := unary(ctx, typed) if res == nil && err == nil { // This is going to panic during serialization. Debugging is much easier // if we panic here instead, so we can include the procedure name. panic(procedure + " returned nil *connect.Response and nil error") //nolint: forbidigo } if err != nil { return nil, err } return res, nil })