netbirdio/netbird · info
wireguard interface not initialized
Error message
wireguard interface not initialized
What it means
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.
Source
Thrown at client/internal/engine.go:2509
func (e *Engine) stopDNSForwarder() {
if e.dnsForwardMgr == nil {
return
}
if err := e.dnsForwardMgr.Stop(context.Background()); err != nil {
log.Errorf("failed to stop DNS forward: %v", err)
}
e.dnsForwardMgr = nil
}
func (e *Engine) GetNet() (*netstack.Net, error) {
e.syncMsgMux.Lock()
intf := e.wgInterface
e.syncMsgMux.Unlock()
if intf == nil {
return nil, errors.New("wireguard interface not initialized")
}
nsnet := intf.GetNet()
if nsnet == nil {
return nil, errors.New("failed to get netstack")
}
return nsnet, nil
}
func (e *Engine) Address() (netip.Addr, error) {
e.syncMsgMux.Lock()
intf := e.wgInterface
e.syncMsgMux.Unlock()
if intf == nil {
return netip.Addr{}, errors.New("wireguard interface not initialized")
}
return e.wgInterface.Address().IP, nilView on GitHub (pinned to 93e97f4bf1)
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.
Defensive patterns
Strategy: validation
Prevention
- 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.
When it happens
Trigger: 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.
Common situations: Bookmark to a disconnected account's sync view; querying immediately after proxy start before clients spawn; account deregistered from management.
Related errors
- read of the policy table timed out
- sync response persistence is disabled
- host argument required
- tun module not available
- jwt token is required
AI-assisted analysis of netbirdio/netbird@93e97f4bf1 (2026-08-16).
Data as JSON: /api/errors/1c7909795db2f66a.
Report an issue: GitHub.