{"record":{"id":"d836244dc96be02b","repo":"netbirdio/netbird","slug":"invalid-protocol-type-s","errorCode":null,"errorMessage":"invalid protocol type: %s","messagePattern":"invalid protocol type: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"client/internal/acl/manager.go","lineNumber":442,"sourceCode":"\taddr, err := netip.ParseAddr(r.PeerIP)\n\tif err != nil {\n\t\treturn netip.Addr{}, fmt.Errorf(\"invalid IP address, skipping firewall rule\")\n\t}\n\treturn addr.Unmap(), nil\n}\n\nfunc convertToFirewallProtocol(protocol mgmProto.RuleProtocol) (firewall.Protocol, error) {\n\tswitch protocol {\n\tcase mgmProto.RuleProtocol_TCP:\n\t\treturn firewall.ProtocolTCP, nil\n\tcase mgmProto.RuleProtocol_UDP:\n\t\treturn firewall.ProtocolUDP, nil\n\tcase mgmProto.RuleProtocol_ICMP:\n\t\treturn firewall.ProtocolICMP, nil\n\tcase mgmProto.RuleProtocol_ALL:\n\t\treturn firewall.ProtocolALL, nil\n\tdefault:\n\t\treturn firewall.ProtocolALL, fmt.Errorf(\"invalid protocol type: %s\", protocol.String())\n\t}\n}\n\nfunc shouldSkipInvertedRule(protocol firewall.Protocol, port *firewall.Port) bool {\n\treturn protocol == firewall.ProtocolALL || protocol == firewall.ProtocolICMP || port == nil\n}\n\nfunc convertFirewallAction(action mgmProto.RuleAction) (firewall.Action, error) {\n\tswitch action {\n\tcase mgmProto.RuleAction_ACCEPT:\n\t\treturn firewall.ActionAccept, nil\n\tcase mgmProto.RuleAction_DROP:\n\t\treturn firewall.ActionDrop, nil\n\tdefault:\n\t\treturn firewall.ActionDrop, fmt.Errorf(\"invalid action type: %d\", action)\n\t}\n}\n","sourceCodeStart":424,"sourceCodeEnd":460,"githubUrl":"https://github.com/netbirdio/netbird/blob/93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c/client/internal/acl/manager.go#L424-L460","documentation":"Error \"invalid protocol type: %s\" thrown in netbirdio/netbird.","triggerScenarios":"Thrown at client/internal/acl/manager.go:442 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c","analyzedAt":"2026-08-16T03:09:19.136Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}