When running this UniFi OS container on Synology DSM systems that use a dedicated PCIe network interface, UniFi OS fails to start with an “Invalid MAC address” error.
The failure appears to be caused by Synology DSM not including PCIe NIC MAC addresses in /proc/cmdline under macs=, while UniFi OS requires the active interface MAC to be present there.
As a result, UniFi OS never finishes starting and no UniFi services bind to their expected ports.
Environment
- Host OS: DSM 7.3.2-86009 Update 3 (x86_64)
- Hardware: DS1621+ with additional PCIe NIC
- Docker: Synology Docker package
- Container: unifi-os-server (latest at time of writing)
- Network: Container uses the PCIe NIC interface
Observed Behavior
- Container starts
- nginx starts successfully
unifi-core.service never reaches active state
- No UniFi ports are opened (8443, 8080, 3478, etc.)
- UniFi UI is inaccessible
Service Status
ash-4.4# docker exec -it unifi-os-server bash
root@NAS:/# systemctl status unifi-core
● unifi-core.service - UniFi Core
Loaded: loaded (/lib/systemd/system/unifi-core.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/unifi-core.service.d
└─cap.conf, memory.conf
Active: activating (start) since Tue 2026-05-26 11:29:41 UTC; 3s ago
Process: 9225 ExecStartPre=/usr/share/unifi-core/app/hooks/pre-start (code=exited, status=0/SUCCESS)
Main PID: 9252 (MainThread)
Memory: 115.0M (max: 1.0G swap max: 200.0M)
CGroup: /docker/b513743ddf14f8a033364f3f871346448928ef43a1c8ea46fc98be6cdd80ef37/system.slice/unifi-core.service
└─9252 /usr/bin/node24 --expose-gc --max-old-space-size=300 --openssl-legacy-provider --no-network-family-autoselection --dns-result-order=ipv4first /usr/share/unifi-core/app/service.js
May 26 11:29:43 NAS node24[9252]: at file:///usr/share/unifi-core/app/service.js:4:311
May 26 11:29:43 NAS node24[9252]: at Array.forEach (<anonymous>)
May 26 11:29:43 NAS node24[9252]: at N1 (file:///usr/share/unifi-core/app/service.js:4:4)
May 26 11:29:43 NAS node24[9252]: at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
May 26 11:29:43 NAS node24[9252]: at async file:///usr/share/unifi-core/app/service.js:4:966 Error: Invalid MAC address:
May 26 11:29:43 NAS node24[9252]: at file:///usr/share/unifi-core/app/service.js:4:311
May 26 11:29:43 NAS node24[9252]: at Array.forEach (<anonymous>)
May 26 11:29:43 NAS node24[9252]: at N1 (file:///usr/share/unifi-core/app/service.js:4:4)
May 26 11:29:43 NAS node24[9252]: at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
May 26 11:29:43 NAS node24[9252]: at async file:///usr/share/unifi-core/app/service.js:4:966
Container logs
Setting UOS_SERVER_VERSION to 5.0.8
Setting FIRMWARE_PLATFORM to linux-x64
Setting HARDWARE_PLATFORM to synology
Synology patches applied!
Setting UOS_SYSTEM_IP to 192.168.x.x
/proc/cmdline
root=/dev/md0 netif_num=4 syno_hw_version=DSXXXX
macs=*55,*56,*57,*58
The macs= list only contains onboard NIC MAC addresses
The PCIe NIC MAC (*45) is missing
Port Check
No UniFi ports are listening:
netstat -tulnp | grep -E '8443|11443|8080|3478|10003'
# (no output)
nginx ports are listening:
tcp 0 0 0.0.0.0:443 LISTEN nginx
tcp 0 0 0.0.0.0:80 LISTEN nginx
Analysis
It appears UniFi OS validates the active network interface MAC against the macs= kernel parameter.
On Synology DSM, PCIe NIC MAC addresses are not added to /proc/cmdline, which causes UniFi OS to reject the interface and abort startup.
Because /proc/cmdline is kernel-provided and read-only, this cannot be modified from inside the container.
Request
Would it be possible to find a way to:
- override MAC validation, or
- fallback logic (If MAC invalid: → pick next UP interface), or
- manually specify an allowed MAC address (-e UOS_SYSTEM_MAC), or
- skip
/proc/cmdline MAC checks on Synology, or
- bind UniFi OS to a specific interface (-e UOS_BIND_INTERFACE)
I understand this may not be feasible due to UniFi OS internals, but I wanted to document the issue clearly in case a workaround exists or can be added conditionally for Synology hosts.
I'm unfortunately not able to test if it works with onboard NIC but it should.
Tried workaround
I tried spoofing the dedicated NIC MAC address via ip link set dev eth4 address *59 to one present in /proc/cmdline but it did not work
When running this UniFi OS container on Synology DSM systems that use a dedicated PCIe network interface, UniFi OS fails to start with an “Invalid MAC address” error.
The failure appears to be caused by Synology DSM not including PCIe NIC MAC addresses in
/proc/cmdlineundermacs=, while UniFi OS requires the active interface MAC to be present there.As a result, UniFi OS never finishes starting and no UniFi services bind to their expected ports.
Environment
Observed Behavior
unifi-core.servicenever reaches active stateService Status
Container logs
/proc/cmdlineThe
macs=list only contains onboard NIC MAC addressesThe PCIe NIC MAC (
*45) is missingPort Check
No UniFi ports are listening:
nginx ports are listening:
Analysis
It appears UniFi OS validates the active network interface MAC against the
macs=kernel parameter.On Synology DSM, PCIe NIC MAC addresses are not added to
/proc/cmdline, which causes UniFi OS to reject the interface and abort startup.Because
/proc/cmdlineis kernel-provided and read-only, this cannot be modified from inside the container.Request
Would it be possible to find a way to:
/proc/cmdlineMAC checks on Synology, orI understand this may not be feasible due to UniFi OS internals, but I wanted to document the issue clearly in case a workaround exists or can be added conditionally for Synology hosts.
I'm unfortunately not able to test if it works with onboard NIC but it should.
Tried workaround
I tried spoofing the dedicated NIC MAC address via
ip link set dev eth4 address *59to one present in/proc/cmdlinebut it did not work