{"record":{"id":"0e48a130564b8da0","repo":"netbirdio/netbird","slug":"notrack-chains-not-initialized","errorCode":null,"errorMessage":"notrack chains not initialized","messagePattern":"notrack chains not initialized","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"client/firewall/nftables/manager_linux.go","lineNumber":708,"sourceCode":"//  2. Egress: Proxy -> WireGuard (via raw socket)\n//     src=127.0.0.1:fakePort -> dst=127.0.0.1:wgPort\n//     Matched by: dport=wgPort\n//\n//  3. Ingress: Packets to WireGuard\n//     dst=127.0.0.1:wgPort\n//     Matched by: dport=wgPort\n//\n//  4. Ingress: Packets to proxy (after eBPF rewrite)\n//     dst=127.0.0.1:proxyPort\n//     Matched by: dport=proxyPort\n//\n// Rules are cleaned up when the firewall manager is closed.\nfunc (m *Manager) SetupEBPFProxyNoTrack(proxyPort, wgPort uint16) error {\n\tm.mutex.Lock()\n\tdefer m.mutex.Unlock()\n\n\tif m.notrackOutputChain == nil || m.notrackPreroutingChain == nil {\n\t\treturn fmt.Errorf(\"notrack chains not initialized\")\n\t}\n\n\tproxyPortBytes := binaryutil.BigEndian.PutUint16(proxyPort)\n\twgPortBytes := binaryutil.BigEndian.PutUint16(wgPort)\n\tloopback := []byte{127, 0, 0, 1}\n\n\t// Egress rules: match outgoing loopback UDP packets\n\tm.rConn.AddRule(&nftables.Rule{\n\t\tTable: m.notrackOutputChain.Table,\n\t\tChain: m.notrackOutputChain,\n\t\tExprs: []expr.Any{\n\t\t\t&expr.Meta{Key: expr.MetaKeyOIFNAME, Register: 1},\n\t\t\t&expr.Cmp{Op: expr.CmpOpEq, Register: 1, Data: ifname(\"lo\")},\n\t\t\t&expr.Payload{DestRegister: 1, Base: expr.PayloadBaseNetworkHeader, Offset: 12, Len: 4}, // saddr\n\t\t\t&expr.Cmp{Op: expr.CmpOpEq, Register: 1, Data: loopback},\n\t\t\t&expr.Payload{DestRegister: 1, Base: expr.PayloadBaseNetworkHeader, Offset: 16, Len: 4}, // daddr\n\t\t\t&expr.Cmp{Op: expr.CmpOpEq, Register: 1, Data: loopback},\n\t\t\t&expr.Meta{Key: expr.MetaKeyL4PROTO, Register: 1},","sourceCodeStart":690,"sourceCodeEnd":726,"githubUrl":"https://github.com/netbirdio/netbird/blob/93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c/client/firewall/nftables/manager_linux.go#L690-L726","documentation":"Error \"notrack chains not initialized\" thrown in netbirdio/netbird.","triggerScenarios":"Thrown at client/firewall/nftables/manager_linux.go:708 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"}