[GH-ISSUE #4811] systemd service repeatedly destroys wt0 when **resolvconf** is missing → exit 99 → self-stop loop #9377

Open
opened 2026-08-05 01:21:53 -04:00 by saavagebueno · 1 comment
Owner

Originally created by @yimiaoxiehou on GitHub (Nov 18, 2025).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/4811

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). Original GitHub issue: https://github.com/netbirdio/netbird/issues/4811 ## 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 2026-08-05 01:21:53 -04:00
Author
Owner

@mlsmaycon commented on GitHub (Nov 20, 2025):

@yimiaoxiehou, this is not a normal behavior with default Debian and Ubuntu installs. Usually, NetBird works well with systemd.

Would you please share more logs from NetBird and any specifics about your OS installation?

You can get NetBird logs with:

netbird debug for 1m --anonymize --upload-bundle
<!-- gh-comment-id:3560625813 --> @mlsmaycon commented on GitHub (Nov 20, 2025): @yimiaoxiehou, this is not a normal behavior with default Debian and Ubuntu installs. Usually, NetBird works well with systemd. Would you please share more logs from NetBird and any specifics about your OS installation? You can get NetBird logs with: ```shell netbird debug for 1m --anonymize --upload-bundle ```
Sign in to join this conversation.
No Label triage-needed
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#9377