{"record":{"id":"6f50af007fa0050e","repo":"cloudflare/cloudflared","slug":"s-6f50af","errorCode":null,"errorMessage":"%s","messagePattern":"%s","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"tunnelrpc/pogs/session_manager.go","lineNumber":130,"sourceCode":"}\n\nfunc (p *RegisterUdpSessionResponse) Marshal(s proto.RegisterUdpSessionResponse) error {\n\tif p.Err != nil {\n\t\treturn s.SetErr(p.Err.Error())\n\t}\n\tif err := s.SetSpans(p.Spans); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (p *RegisterUdpSessionResponse) Unmarshal(s proto.RegisterUdpSessionResponse) error {\n\trespErr, err := s.Err()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif respErr != \"\" {\n\t\tp.Err = fmt.Errorf(\"%s\", respErr)\n\t}\n\tp.Spans, err = s.Spans()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\ntype SessionManager_PogsClient struct {\n\tClient capnp.Client\n\tConn   *rpc.Conn\n}\n\nfunc NewSessionManager_PogsClient(client capnp.Client, conn *rpc.Conn) SessionManager_PogsClient {\n\treturn SessionManager_PogsClient{\n\t\tClient: client,\n\t\tConn:   conn,\n\t}","sourceCodeStart":112,"sourceCodeEnd":148,"githubUrl":"https://github.com/cloudflare/cloudflared/blob/2253eeeb25a44a713a4b60b8ba1e1b3f377d1a0f/tunnelrpc/pogs/session_manager.go#L112-L148","documentation":"While unmarshalling a RegisterUdpSessionResponse, the remote edge reported a non-empty Err string. cloudflared converts that string into p.Err so the session-registration caller sees the server-side rejection reason verbatim.","triggerScenarios":"Unmarshal of RegisterUdpSessionResponse where s.Err() returns a non-empty string — i.e., the edge refused the UDP session registration.","commonSituations":"Edge has no route/capacity for the requested UDP destination; session limits reached; ICMP/UDP proxying disabled for the tunnel; version skew causing unsupported options.","solutions":["Read p.Err's message — it states the edge's rejection reason.","Verify UDP/ICMP support is enabled for the tunnel and origin config.","Check for edge capacity/session-limit issues and retry.","Update cloudflared on both ends to compatible versions."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"var resp RegisterUdpSessionResponse\nif err := resp.Unmarshal(s); err == nil && resp.Err != nil {\n    log.Warn().Err(resp.Err).Msg(\"UDP session rejected by edge; retrying\")\n    retryWithBackoff()\n}","preventionTips":["Confirm UDP proxying is enabled for the tunnel","Monitor edge session limits","Keep cloudflared versions consistent across client and server"],"tags":["rpc","udp","remote-error"],"backgroundTag":"rpc-remote-error","analyzedSha":"2253eeeb25a44a713a4b60b8ba1e1b3f377d1a0f","analyzedAt":"2026-09-06T04:14:33.757Z","contentChangedAt":"2026-09-06T04:14:33.757Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}