{"record":{"id":"604dacb6c44ee16c","repo":"netbirdio/netbird","slug":"flush-external-chain-rules-w","errorCode":null,"errorMessage":"flush external chain rules: %w","messagePattern":"flush external chain rules: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"client/firewall/nftables/router_linux.go","lineNumber":1183,"sourceCode":"\n\treturn r.conn.Flush()\n}\n\n// acceptExternalChainsRules adds accept rules to external chains (non-netbird, non-iptables tables).\n// It dynamically finds chains at call time to handle chains that may have been created after startup.\nfunc (r *router) acceptExternalChainsRules() error {\n\tchains := r.findExternalChains()\n\tif len(chains) == 0 {\n\t\treturn nil\n\t}\n\n\tintf := ifname(r.wgIface.Name())\n\tfor _, chain := range chains {\n\t\tr.applyExternalChainAccept(chain, intf)\n\t}\n\n\tif err := r.conn.Flush(); err != nil {\n\t\treturn fmt.Errorf(\"flush external chain rules: %w\", err)\n\t}\n\treturn nil\n}\n\nfunc (r *router) applyExternalChainAccept(chain *nftables.Chain, intf []byte) {\n\tif chain.Hooknum == nil {\n\t\tlog.Debugf(\"skipping external chain %s/%s: hooknum is nil\", chain.Table.Name, chain.Name)\n\t\treturn\n\t}\n\n\tlog.Debugf(\"adding accept rules to external %s chain: %s %s/%s\",\n\t\thookName(chain.Hooknum), familyName(chain.Table.Family), chain.Table.Name, chain.Name)\n\n\tswitch *chain.Hooknum {\n\tcase *nftables.ChainHookForward:\n\t\tr.insertForwardAcceptRules(chain, intf)\n\tcase *nftables.ChainHookInput:\n\t\tr.insertInputAcceptRule(chain, intf)","sourceCodeStart":1165,"sourceCodeEnd":1201,"githubUrl":"https://github.com/netbirdio/netbird/blob/93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c/client/firewall/nftables/router_linux.go#L1165-L1201","documentation":"Error \"flush external chain rules: %w\" thrown in netbirdio/netbird.","triggerScenarios":"Thrown at client/firewall/nftables/router_linux.go:1183 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"}