systemd service repeatedly destroys wt0 when **resolvconf** is missing → exit 99 → self-stop loop #2474

Open
opened 2025-11-20 07:10:15 -05:00 by saavagebueno · 0 comments
Owner

Originally created by @yimiaoxiehou on GitHub (Nov 18, 2025).

Describe the bug

On Debian/Ubuntu systems without resolvconf installed, NetBird’s systemd service enters a 4-second self-restart loop:

  1. Engine configures DNS for wt0resolvconf -a wt0 … returns exit status 99
  2. NetBird treats this as fatal, logs stopped NetBird Engine, and actively calls free_netdev()
  3. wt0 is destroyed → reconnect → loop repeats
    (Docker images are unaffected because they usually ship resolvconf)

To Reproduce

  1. sudo apt install resolvconf
  2. sudo systemctl restart netbird
  3. ip link show wt0 → interface appears and disappears every 4–5 s
  4. journalctl -u netbird -f → endless “stopped NetBird Engine”

Expected behavior

DNS setup failure should be logged only, not fatal.
wt0 should remain up and retry DNS later, not self-stop.


Screenshots / Logs

Nov 19 10:46:39 host netbird[374638]: resolvconf: exit status 99
Nov 19 10:46:39 host netbird[374638]: stopped Netbird Engine
Nov 19 10:46:43 host netbird[374638]: WireGuard interface monitor: interface wt0 deleted: failed to lookup interface: route ip+net: no such network interface, restarting engine
Originally created by @yimiaoxiehou on GitHub (Nov 18, 2025). ## Describe the bug On Debian/Ubuntu systems **without `resolvconf` installed**, NetBird’s systemd service enters a **4-second self-restart loop**: 1. Engine configures DNS for `wt0` → `resolvconf -a wt0 …` **returns exit status 99** 2. NetBird treats this as **fatal**, logs `stopped NetBird Engine`, and **actively calls `free_netdev()`** 3. `wt0` is destroyed → reconnect → loop repeats *(Docker images are unaffected because they usually ship `resolvconf`)* --- ## To Reproduce 1. `sudo apt install resolvconf` 2. `sudo systemctl restart netbird` 3. `ip link show wt0` → interface **appears and disappears every 4–5 s** 4. `journalctl -u netbird -f` → endless **“stopped NetBird Engine”** --- ## Expected behavior DNS setup failure should be **logged only**, not **fatal**. `wt0` should **remain up** and retry DNS later, **not self-stop**. --- ## Screenshots / Logs ```text Nov 19 10:46:39 host netbird[374638]: resolvconf: exit status 99 Nov 19 10:46:39 host netbird[374638]: stopped Netbird Engine Nov 19 10:46:43 host netbird[374638]: WireGuard interface monitor: interface wt0 deleted: failed to lookup interface: route ip+net: no such network interface, restarting engine
saavagebueno added the triage-needed label 2025-11-20 07:10:15 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SVI/netbird#2474