Good day
I have a clean install on a Small Form Factor Dell with an i5 8th Generation and 20GB RAM, with an Intel X710 network card. I have configured two interfaces (WAN and LAN) with DHCP server running on the LAN. I have enables SSH access on the LAN. The router seems to perform very well and fast for a few hours before I receive a popup stating "Danger. Unexpected error, check log for details error on (almost) clean install." (shown below)
When I clear the popup, I get a few seconds before it returns again. All of my logs appear to be empty.
I have tried to follow the troubleshooting suggested in thread https://forum.opnsense.org/index.php?topic=45194.0 as follows:
Can you look for the PHP_ERROR (I dont know if its exactly called like that) file in:
/tmp/
And look for the last entries? If you post them we could see what the error was.
root@OPNsense:/ # cat /var/lib/php/tmp/PHP_errors.log
[26-Oct-2025 12:11:01 Europe/London] TypeError: array_column(): Argument #1 ($array) must be of type array, null given in /usr/local/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php:91
Stack trace:
#0 /usr/local/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php(91): array_column(NULL, 'name')
#1 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Dispatcher.php(166): OPNsense\Routing\Api\SettingsController->searchGatewayAction()
#2 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(156): OPNsense\Mvc\Dispatcher->dispatch(Object(OPNsense\Mvc\Request), Object(OPNsense\Mvc\Response), Object(OPNsense\Mvc\Session))
#3 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(139): OPNsense\Mvc\Router->performRequest(Object(OPNsense\Mvc\Dispatcher))
#4 /usr/local/opnsense/www/api.php(36): OPNsense\Mvc\Router->routeRequest('/api/routing/se...', Array)
#5 {main}
[26-Oct-2025 12:11:38 Europe/London] TypeError: array_column(): Argument #1 ($array) must be of type array, null given in /usr/local/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php:91
Stack trace:
#0 /usr/local/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php(91): array_column(NULL, 'name')
#1 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Dispatcher.php(166): OPNsense\Routing\Api\SettingsController->searchGatewayAction()
#2 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(156): OPNsense\Mvc\Dispatcher->dispatch(Object(OPNsense\Mvc\Request), Object(OPNsense\Mvc\Response), Object(OPNsense\Mvc\Session))
#3 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(139): OPNsense\Mvc\Router->performRequest(Object(OPNsense\Mvc\Dispatcher))
#4 /usr/local/opnsense/www/api.php(36): OPNsense\Mvc\Router->routeRequest('/api/routing/se...', Array)
#5 {main}
[26-Oct-2025 12:25:11 Europe/London] TypeError: array_column(): Argument #1 ($array) must be of type array, null given in /usr/local/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php:91
Stack trace:
#0 /usr/local/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php(91): array_column(NULL, 'name')
#1 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Dispatcher.php(166): OPNsense\Routing\Api\SettingsController->searchGatewayAction()
#2 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(156): OPNsense\Mvc\Dispatcher->dispatch(Object(OPNsense\Mvc\Request), Object(OPNsense\Mvc\Response), Object(OPNsense\Mvc\Session))
#3 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(139): OPNsense\Mvc\Router->performRequest(Object(OPNsense\Mvc\Dispatcher))
#4 /usr/local/opnsense/www/api.php(36): OPNsense\Mvc\Router->routeRequest('/api/routing/se...', Array)
#5 {main}
Can you execute this from the shell?
CodeSelect
/usr/local/opnsense/scripts/routes/gateway_status.php
Please post the array it returns. When it returns nothing or ERR please look at the PHP_errors.log again and post the error.
root@OPNsense:/ # /usr/local/opnsense/scripts/routes/gateway_status.php
[{"name":"WAN_DHCP6","address":"fe80::3263:eaff:fe2a:88cb","status":"none","loss":"~","delay":"~","stddev":"~","monitor":"~","status_translated":"Online"},{"name":"WAN_DHCP","address":"82.163.151.254","status":"none","loss":"~","delay":"~","stddev":"~","monitor":"~","status_translated":"Online"}]
root@OPNsense:/ # cat /var/lib/php/tmp/PHP_errors.log
[26-Oct-2025 12:26:51 Europe/London] TypeError: array_column(): Argument #1 ($array) must be of type array, null given in /usr/local/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php:91
Stack trace:
#0 /usr/local/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php(91): array_column(NULL, 'name')
#1 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Dispatcher.php(166): OPNsense\Routing\Api\SettingsController->searchGatewayAction()
#2 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(156): OPNsense\Mvc\Dispatcher->dispatch(Object(OPNsense\Mvc\Request), Object(OPNsense\Mvc\Response), Object(OPNsense\Mvc\Session))
#3 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(139): OPNsense\Mvc\Router->performRequest(Object(OPNsense\Mvc\Dispatcher))
#4 /usr/local/opnsense/www/api.php(36): OPNsense\Mvc\Router->routeRequest('/api/routing/se...', Array)
#5 {main}
[26-Oct-2025 12:27:02 Europe/London] TypeError: array_column(): Argument #1 ($array) must be of type array, null given in /usr/local/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php:91
Stack trace:
#0 /usr/local/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php(91): array_column(NULL, 'name')
#1 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Dispatcher.php(166): OPNsense\Routing\Api\SettingsController->searchGatewayAction()
#2 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(156): OPNsense\Mvc\Dispatcher->dispatch(Object(OPNsense\Mvc\Request), Object(OPNsense\Mvc\Response), Object(OPNsense\Mvc\Session))
#3 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(139): OPNsense\Mvc\Router->performRequest(Object(OPNsense\Mvc\Dispatcher))
#4 /usr/local/opnsense/www/api.php(36): OPNsense\Mvc\Router->routeRequest('/api/routing/se...', Array)
#5 {main}
Sorry I forgot to ask for
CodeSelect
configctl interface gateways status
Even though you get an array from the above php script it executes, maybe this casts ERR?
root@OPNsense:/ # configctl interface gateways status
error in configd communication, see syslog for details
Can you try a different browser or incognito mode? If the PHP error reappears each time it's a bit strange the backend call that is supposed to be failing is working fine. Otherwise the browser likes to cache an old invalid response for whatever reason...
Cheers,
Franco
No difference with Chrome Incognito Mode, Edgo, Firefox, Samsung Browser.
root@OPNsense:/ # /usr/local/sbin/pluginctl -D
{
"ixl0": {
"flags": [
"up",
"broadcast",
"running",
"simplex",
"multicast",
"lower_up"
],
"capabilities": [
"rxcsum",
"txcsum",
"vlan_mtu",
"vlan_hwtagging",
"jumbo_mtu",
"vlan_hwcsum",
"tso4",
"tso6",
"lro",
"vlan_hwfilter",
"vlan_hwtso",
"netmap",
"rxcsum_ipv6",
"txcsum_ipv6",
"hwstats",
"mextpg"
],
"options": [
"vlan_mtu",
"jumbo_mtu",
"hwstats",
"mextpg"
],
"macaddr": "b4:83:51:14:e0:14",
"ipv4": [
{
"ipaddr": "192.168.2.1",
"subnetbits": 16,
"tunnel": false
}
],
"ipv6": [
{
"autoconf": false,
"deprecated": false,
"detached": false,
"ipaddr": "2a06:61c0:4f1c:0:b683:51ff:fe14:e014",
"link-local": false,
"tentative": false,
"tunnel": false,
"subnetbits": 48
},
{
"autoconf": false,
"deprecated": false,
"detached": false,
"ipaddr": "fe80::b683:51ff:fe14:e014",
"link-local": true,
"tentative": false,
"tunnel": false,
"subnetbits": 64
}
],
"supported_media": [
"autoselect",
"10Gbase-T",
"1000baseT",
"100baseTX"
],
"is_physical": true,
"device": "ixl0",
"mtu": "1500",
"macaddr_hw": "b4:83:51:14:e0:14",
"media": "10Gbase-T <full-duplex>",
"media_raw": "Ethernet autoselect (10Gbase-T <full-duplex>)",
"status": "active",
"nd6": {
"flags": [
"performnud",
"auto_linklocal"
]
}
},
"ixl1": {
"flags": [
"broadcast",
"simplex",
"multicast",
"lower_up"
],
"capabilities": [
"rxcsum",
"txcsum",
"vlan_mtu",
"vlan_hwtagging",
"jumbo_mtu",
"vlan_hwcsum",
"tso4",
"tso6",
"lro",
"vlan_hwfilter",
"vlan_hwtso",
"netmap",
"rxcsum_ipv6",
"txcsum_ipv6",
"hwstats",
"mextpg"
],
"options": [
"vlan_mtu",
"jumbo_mtu",
"hwstats",
"mextpg"
],
"macaddr": "b4:83:51:14:e0:15",
"ipv4": [],
"ipv6": [],
"supported_media": [
"autoselect",
"10Gbase-T",
"1000baseT",
"100baseTX"
],
"is_physical": true,
"device": "ixl1",
"mtu": "1500",
"macaddr_hw": "b4:83:51:14:e0:15",
"media": "1000baseT <full-duplex>",
"media_raw": "Ethernet autoselect (1000baseT <full-duplex>)",
"status": "active",
"nd6": {
"flags": [
"performnud",
"ifdisabled",
"auto_linklocal"
]
}
},
"em0": {
"flags": [
"up",
"broadcast",
"running",
"simplex",
"multicast",
"lower_up"
],
"capabilities": [
"rxcsum",
"txcsum",
"vlan_mtu",
"vlan_hwtagging",
"jumbo_mtu",
"vlan_hwcsum",
"tso4",
"tso6",
"lro",
"wol_ucast",
"wol_mcast",
"wol_magic",
"vlan_hwfilter",
"vlan_hwtso",
"netmap",
"rxcsum_ipv6",
"txcsum_ipv6",
"hwstats",
"mextpg"
],
"options": [
"vlan_mtu",
"jumbo_mtu",
"hwstats",
"mextpg"
],
"macaddr": "e4:54:e8:80:1c:e0",
"ipv4": [
{
"ipaddr": "82.163.151.65",
"subnetbits": 22,
"tunnel": false
}
],
"ipv6": [
{
"autoconf": false,
"deprecated": false,
"detached": false,
"ipaddr": "fe80::e654:e8ff:fe80:1ce0",
"link-local": true,
"tentative": false,
"tunnel": false,
"subnetbits": 64
}
],
"supported_media": [
"autoselect",
"1000baseT",
"1000baseT full-duplex",
"100baseTX full-duplex",
"100baseTX",
"10baseT/UTP full-duplex",
"10baseT/UTP"
],
"is_physical": true,
"device": "em0",
"mtu": "1500",
"macaddr_hw": "e4:54:e8:80:1c:e0",
"media": "1000baseT <full-duplex>",
"media_raw": "Ethernet autoselect (1000baseT <full-duplex>)",
"status": "active",
"nd6": {
"flags": [
"performnud",
"accept_rtadv",
"auto_linklocal"
]
}
},
"lo0": {
"flags": [
"up",
"loopback",
"running",
"multicast",
"lower_up"
],
"capabilities": [
"rxcsum",
"txcsum",
"linkstate",
"rxcsum_ipv6",
"txcsum_ipv6"
],
"options": [
"rxcsum",
"txcsum",
"linkstate",
"rxcsum_ipv6",
"txcsum_ipv6"
],
"macaddr": "00:00:00:00:00:00",
"ipv4": [
{
"ipaddr": "127.0.0.1",
"subnetbits": 8,
"tunnel": false
}
],
"ipv6": [
{
"autoconf": false,
"deprecated": false,
"detached": false,
"ipaddr": "::1",
"link-local": false,
"tentative": false,
"tunnel": false,
"subnetbits": 128
},
{
"autoconf": false,
"deprecated": false,
"detached": false,
"ipaddr": "fe80::1",
"link-local": true,
"tentative": false,
"tunnel": false,
"subnetbits": 64
}
],
"supported_media": [],
"is_physical": false,
"device": "lo0",
"mtu": "16384",
"groups": [
"lo"
],
"nd6": {
"flags": [
"performnud",
"auto_linklocal"
]
}
},
"enc0": {
"flags": [],
"capabilities": [
"capabilities="
],
"options": [
"options="
],
"macaddr": "00:00:00:00:00:00",
"ipv4": [],
"ipv6": [],
"supported_media": [],
"is_physical": false,
"device": "enc0",
"mtu": "1536",
"groups": [
"enc"
],
"nd6": {
"flags": [
"performnud",
"ifdisabled",
"auto_linklocal"
]
}
},
"pfsync0": {
"flags": [],
"capabilities": [
"capabilities="
],
"options": [
"options="
],
"macaddr": "00:00:00:00:00:00",
"ipv4": [],
"ipv6": [],
"supported_media": [],
"is_physical": false,
"device": "pfsync0",
"mtu": "1500",
"groups": [
"pfsync"
]
},
"pflog0": {
"flags": [
"promisc",
"ppromisc"
],
"capabilities": [
"capabilities="
],
"options": [
"options="
],
"macaddr": "00:00:00:00:00:00",
"ipv4": [],
"ipv6": [],
"supported_media": [],
"is_physical": false,
"device": "pflog0",
"mtu": "33152",
"groups": [
"pflog"
]
}
}
A list of interfaces you get get using:
# ifconfig -l
I'm sure there is one that's causing all the trouble.
Cheers,
Franco
root@OPNsense:/ # ifconfig -l
ixl0 ixl1 em0 lo0 enc0 pfsync0 pflog0
pluginctl -D xxx on all these interfaces produces something similar to
root@OPNsense:/ # pluginctl -D em0
{
"em0": {
"flags": [
"up",
"broadcast",
"running",
"simplex",
"multicast",
"lower_up"
],
"capabilities": [
"rxcsum",
"txcsum",
"vlan_mtu",
"vlan_hwtagging",
"jumbo_mtu",
"vlan_hwcsum",
"tso4",
"tso6",
"lro",
"wol_ucast",
"wol_mcast",
"wol_magic",
"vlan_hwfilter",
"vlan_hwtso",
"netmap",
"rxcsum_ipv6",
"txcsum_ipv6",
"hwstats",
"mextpg"
],
"options": [
"vlan_mtu",
"jumbo_mtu",
"hwstats",
"mextpg"
],
"macaddr": "e4:54:e8:80:1c:e0",
"ipv4": [
{
"ipaddr": "82.163.151.65",
"subnetbits": 22,
"tunnel": false
}
],
"ipv6": [
{
"autoconf": false,
"deprecated": false,
"detached": false,
"ipaddr": "fe80::e654:e8ff:fe80:1ce0",
"link-local": true,
"tentative": false,
"tunnel": false,
"subnetbits": 64
}
],
"supported_media": [
"autoselect",
"1000baseT",
"1000baseT full-duplex",
"100baseTX full-duplex",
"100baseTX",
"10baseT/UTP full-duplex",
"10baseT/UTP"
],
"is_physical": true,
"device": "em0",
"mtu": "1500",
"macaddr_hw": "e4:54:e8:80:1c:e0",
"media": "1000baseT <full-duplex>",
"media_raw": "Ethernet autoselect (1000baseT <full-duplex>)",
"status": "active",
"nd6": {
"flags": [
"performnud",
"accept_rtadv",
"auto_linklocal"
]
}
}
}
When I ssh in and select option "11) Reload all services", everything seems to come back online for a few minutes before the error returns. During all of this, Internet access is not disrupted.
Incidentally, as part of my troubleshooting, I have tried substituting a different computer, network card, RAM, NVME drive and even new installation media with a complete reinstall but the error returns after a few hours. Is my network cursed?! :-)
Thank you in advance for any ideas you may have.