NetworkManager 1.50.2 sends DHCPDISCOVER with ciaddr set; fixed upstream in 1.58

Author: craig-bCreated Sep 19, 2026Updated Sep 19, 2026

Describe the issue you are experiencing

HA OS 18.3 ships NetworkManager 1.50.2, whose internal DHCP client puts the previous lease's address in ciaddr on a DHCPDISCOVER. RFC 2131 says that must be zero. dnsmasq tolerates it, but Technitium drops the packet silently, so after I moved my LAN's DHCP from Pi-hole to Technitium the box lost IPv4 and never got it back (13 hours of DISCOVERs, no reply; Technitium side is TechnitiumSoftware/DnsServer#2158).

Fixed upstream in n-dhcp4 commit e19f3192cb ("dhcp: Fix ciaddr field to comply with RFC2131"), shipped in NetworkManager 1.58.0. dev is still on 1.50.2. Could NM be bumped to 1.58?

Workaround: static IPv4.

What operating system image do you use?

generic-x86-64 (Generic UEFI capable x86-64 systems)

What version of Home Assistant Operating System is installed?

18.3

Did the problem occur after upgrading the Operating System?

No

Hardware details

Intel NUC5i5RYB (i5-5250U, 8 GB), bare metal. Onboard Intel Ethernet (enp0s25), Wi-Fi disabled. Crucial MX200 250 GB SATA as data disk. No USB devices attached.

Steps to reproduce the issue

  1. Box holds a DHCP lease from server A (dnsmasq / Pi-hole).
  2. Retire server A, put Technitium in as the DHCP server with a reservation for the box's MAC.
  3. Let the lease expire, or reboot the box.
  4. tcpdump on the LAN: every DISCOVER from the box has Client-IP set to the old address. Technitium never answers and logs nothing. NetworkManager loops on "no lease" indefinitely.

Anything in the Supervisor logs that might be useful for us?

txt
Nothing relevant. Only "Updating local network information" each time NetworkManager restarts the DHCP transaction.

Anything in the Host logs that might be useful for us?

txt
NetworkManager[487]: <info>  dhcp4 (enp0s25): canceled DHCP transaction
NetworkManager[487]: <info>  dhcp4 (enp0s25): activation: beginning transaction (timeout in 45 seconds)
NetworkManager[487]: <info>  dhcp4 (enp0s25): state changed no lease
(repeats every cycle)

System information

System Information

version core-2026.9.3
installation_type Home Assistant OS
dev false
hassio true
docker true
container_arch amd64
user root
virtualenv false
python_version 3.14.6
os_name Linux
os_version 6.18.52-haos
arch x86_64
timezone Europe/London
config_dir /config
Home Assistant Cloud
logged_in true
subscription_expiration 2 October 2026 at 01:00
relayer_connected true
relayer_region eu-central-1
remote_enabled true
remote_connected true
remote_server eu-4.ui.nabu.casa
alexa_enabled true
google_enabled true
cloud_ice_servers_enabled true
certificate_status ready
instance_id c35fd17260874c8480672839430f4bd5
iot_state connected
iot_tries 0
certificate_expire_date 26 October 2026 at 22:23
certificate_fingerprint dce30cf43cf9b07ad206c37d291493aced3fa35a
certificate_alternative_names undefined
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
HACS
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.5
Stage running
Available Repositories 4138
Downloaded Repositories 50
Home Assistant Supervisor
host_os Home Assistant OS 18.3
update_channel stable
supervisor_version supervisor-2026.09.2
agent_version 1.14.0
docker_version 29.7.2
disk_total 228.5 GB
disk_used 97.3 GB
nameservers fdc7:566f:697c:0:be24:11ff:fe4a:6e87, 192.168.10.87
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons OneDrive Backup (2.3.10), Music Assistant (2.10.4), File editor (6.1.0), Studio Code Server (7.1.1), ESPHome Device Builder (2026.9.0), Mosquitto broker (7.1.1), Samba share (12.10.0), openWakeWord (2.1.1), AdGuard Home (6.2.1), Node-RED (22.0.6), Spotify Connect (0.19.0), Tailscale (0.30.0), Get HACS (1.3.1), Cloudflare Tunnel client (2026.8.0), Homarr (0.92), n8n (4.4.21), Speech-to-Phrase (1.4.5), Zigbee2MQTT (2.14.1-1), Homarr (1.1.0), Advanced SSH & Web Terminal (24.1.4), SQLite Web (6.1.1), Home Assistant MCP Server (8.5.0), TS Entities (2026.3.20-4495fdb), HA Forge (2026.3.31-f62915c), Qwen Voice Bridge (0.1.10), Nabu Casa - Webhook Proxy for HA MCP (3.0.3)
Dashboards
dashboards 9
resources 17
views 16
mode storage
Network Configuration
adapters lo (disabled), enp0s25 (enabled, default, auto), docker0 (disabled), hassio (disabled), veth6d5e3cf (disabled), veth73438ea (disabled), veth5c37051 (disabled), vetheedbc46 (disabled), veth1fc7ad4 (disabled), veth8152413 (disabled), veth51de7e9 (disabled), veth29332f7 (disabled), tailscale0 (disabled), veth0b7a4a8 (disabled), veth1911961 (disabled), vethd06985b (disabled), vethe1503ac (disabled), veth577d176 (disabled), vethe73014c (disabled), vethab33260 (disabled), veth9e3922f (disabled), veth55af13c (disabled), vethb54e670 (disabled), veth3d35be4 (disabled)
ipv4_addresses lo (127.0.0.1/8), enp0s25 (192.168.10.4/24), docker0 (172.30.232.1/23), hassio (172.30.32.1/23), veth6d5e3cf (), veth73438ea (), veth5c37051 (), vetheedbc46 (), veth1fc7ad4 (), veth8152413 (), veth51de7e9 (), veth29332f7 (), tailscale0 (), veth0b7a4a8 (), veth1911961 (), vethd06985b (), vethe1503ac (), veth577d176 (), vethe73014c (), vethab33260 (), veth9e3922f (), veth55af13c (), vethb54e670 (), veth3d35be4 ()
ipv6_addresses lo (::1/128), enp0s25 (fdc7:566f:697c:0:f8fe:4bf2:d850:f0e6/64, fe80::42ed:c697:33b0:4d1e/64), docker0 (fdc2:6236:4ba::1/64, fe80::505d:42ff:fe8c:dd52/64), hassio (fd0c:ac1e:2100::1/48, fe80::1069:81ff:fe23:4d78/64), veth6d5e3cf (fe80::68d2:2eff:fe76:6d62/64), veth73438ea (fe80::2c96:f7ff:fee7:88d8/64), veth5c37051 (fe80::f02f:91ff:fedf:140b/64), vetheedbc46 (fe80::fc82:9eff:fea4:3271/64), veth1fc7ad4 (fe80::3406:efff:febc:896b/64), veth8152413 (fe80::c41f:b0ff:fec8:907a/64), veth51de7e9 (fe80::5c31:c1ff:fecc:7d5b/64), veth29332f7 (fe80::2c17:d7ff:fee6:82fe/64), tailscale0 (fe80::2389:fff8:1fdc:7bbc/64), veth0b7a4a8 (fe80::3cea:55ff:fe7d:7803/64), veth1911961 (fe80::c498:52ff:fec3:e9a7/64), vethd06985b (fe80::8c5f:87ff:feab:5c3a/64), vethe1503ac (fe80::6cef:42ff:fe7d:5997/64), veth577d176 (fe80::f4f6:baff:fed6:f6a1/64), vethe73014c (fe80::30a0:a5ff:fe0c:8ac0/64), vethab33260 (fe80::c43c:25ff:fe45:2cbd/64), veth9e3922f (fe80::5c8a:dff:fe90:30e8/64), veth55af13c (fe80::c0d3:3cff:fe02:c999/64), vethb54e670 (fe80::3c12:54ff:fe60:89f8/64), veth3d35be4 (fe80::7c90:d0ff:fee6:d330/64)
announce_addresses 192.168.10.4, fdc7:566f:697c:0:f8fe:4bf2:d850:f0e6, fe80::42ed:c697:33b0:4d1e
Recorder
oldest_recorder_run 8 September 2026 at 21:38
current_recorder_run 18 September 2026 at 23:47
estimated_db_size 536.55 MiB
database_engine sqlite
database_version 3.53.2
Spotify
api_endpoint_reachable ok

Additional information

One DISCOVER as seen on the wire:

IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from b8:ae:ed:75:61:3f, secs 47648 Client-IP 192.168.10.4 DHCP-Message (53): Discover Requested-IP (50): 192.168.10.4 Hostname (12): "homeassistant"

The only HA OS patch against NetworkManager is the connectivity-check one, which shouldn't be affected by the bump.

One note on the reproduce steps: the box reproduces it every time it loses IPv4, but a fresh install that has never held a lease will not, since ciaddr is only filled once the client has been bound. That is why step 1 matters.

Source: home-assistant/operating-system