{"record":{"id":"1c7909795db2f66a","repo":"netbirdio/netbird","slug":"wireguard-interface-not-initialized","errorCode":null,"errorMessage":"wireguard interface not initialized","messagePattern":"wireguard interface not initialized","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"info","filePath":"client/internal/engine.go","lineNumber":2509,"sourceCode":"\nfunc (e *Engine) stopDNSForwarder() {\n\tif e.dnsForwardMgr == nil {\n\t\treturn\n\t}\n\n\tif err := e.dnsForwardMgr.Stop(context.Background()); err != nil {\n\t\tlog.Errorf(\"failed to stop DNS forward: %v\", err)\n\t}\n\n\te.dnsForwardMgr = nil\n}\n\nfunc (e *Engine) GetNet() (*netstack.Net, error) {\n\te.syncMsgMux.Lock()\n\tintf := e.wgInterface\n\te.syncMsgMux.Unlock()\n\tif intf == nil {\n\t\treturn nil, errors.New(\"wireguard interface not initialized\")\n\t}\n\n\tnsnet := intf.GetNet()\n\tif nsnet == nil {\n\t\treturn nil, errors.New(\"failed to get netstack\")\n\t}\n\treturn nsnet, nil\n}\n\nfunc (e *Engine) Address() (netip.Addr, error) {\n\te.syncMsgMux.Lock()\n\tintf := e.wgInterface\n\te.syncMsgMux.Unlock()\n\tif intf == nil {\n\t\treturn netip.Addr{}, errors.New(\"wireguard interface not initialized\")\n\t}\n\n\treturn e.wgInterface.Address().IP, nil","sourceCodeStart":2491,"sourceCodeEnd":2527,"githubUrl":"https://github.com/netbirdio/netbird/blob/93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c/client/internal/engine.go#L2491-L2527","documentation":"Same 'Client not found' pattern as index 14 but in handleClientSyncResponse (proxy/internal/debug/handler.go:503): the accountID has no embedded client in the provider registry, so the sync-response debug view returns 404 before it ever asks for a sync response.","triggerScenarios":"GET on the client's syncresponse debug tab/endpoint for an account that is not live: never registered, removed, or not yet started; distinct from 'No sync response available' which requires the client to exist but have no cached response.","commonSituations":"Bookmark to a disconnected account's sync view; querying immediately after proxy start before clients spawn; account deregistered from management.","solutions":["Confirm the account appears in the clients list endpoint before querying its sync response.","If missing unexpectedly, inspect proxy logs for client spawn/sync failures for that account.","Use the exact ID from the list output."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Same as status: list first, then query a returned account ID.","Distinguish this 404 ('Client not found') from the other 404 ('No sync response available') — the first means no client, the second means no cached sync yet.","After proxy start, give clients a moment to register before scripting against the debug API."],"tags":["proxy","debug","http","observability"],"backgroundTag":null,"analyzedSha":"93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c","analyzedAt":"2026-08-16T03:09:19.136Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}