OPNsense Forum

English Forums => 26.7 Series => Topic started by: c-mu on August 06, 2026, 10:04:15 AM

Title: [fixed ]after SNAT Migration: PHP Fatal error: Allowed memory size of 10737418
Post by: c-mu on August 06, 2026, 10:04:15 AM
Hi,
I just updated to the latest OPNsense 26.7.1_1-amd64 and migrated my firewall and NAT Rules.

I didn't get any errors while the migration process, but after the old rules were deleted i noticed two errors:

first: i cant choose the NAT Mode any more. It's empty and "nothing selected". See attached screenshot.

seconed: when I open the SNAT Page, an Crash Report error Log is generated:

QuotePHP Errors:

[06-Aug-2026 09:56:50 Europe/Berlin] PHP Fatal error:  Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php on line 157
Stack trace:
#0 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php(170): OPNsense\Base\FieldTypes\BaseListField->getNodeOptions()
#1 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(739): OPNsense\Base\FieldTypes\BaseListField->getNodeData()
#2 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(737): OPNsense\Base\FieldTypes\BaseField->getNodes()
#3 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(737): OPNsense\Base\FieldTypes\BaseField->getNodes()
#4 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(737): OPNsense\Base\FieldTypes\BaseField->getNodes()
#5 /usr/local/opnsense/mvc/app/models/OPNsense/Base/BaseModel.php(551): OPNsense\Base\FieldTypes\BaseField->getNodes()
#6 /usr/local/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php(220): OPNsense\Base\BaseModel->getNodes()
#7 /usr/local/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php(208): OPNsense\Base\ApiMutableModelControllerBase->getModelNodes()
#8 /usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/SourceNatController.php(57): OPNsense\Base\ApiMutableModelControllerBase->getAction()
#9 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Dispatcher.php(166): OPNsense\Firewall\Api\SourceNatController->getAction()
#10 /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))
#11 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(139): OPNsense\Mvc\Router->performRequest(Object(OPNsense\Mvc\Dispatcher))
#12 /usr/local/opnsense/www/api.php(38): OPNsense\Mvc\Router->routeRequest('/api/firewall/s...', Array)
#13 {main}
[06-Aug-2026 09:56:56 Europe/Berlin] PHP Fatal error:  Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php on line 157
Stack trace:
#0 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php(170): OPNsense\Base\FieldTypes\BaseListField->getNodeOptions()
#1 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ModelRelationField.php(209): OPNsense\Base\FieldTypes\BaseListField->getNodeData()
#2 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(739): OPNsense\Base\FieldTypes\ModelRelationField->getNodeData()
#3 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(737): OPNsense\Base\FieldTypes\BaseField->getNodes()
#4 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(737): OPNsense\Base\FieldTypes\BaseField->getNodes()
#5 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(737): OPNsense\Base\FieldTypes\BaseField->getNodes()
#6 /usr/local/opnsense/mvc/app/models/OPNsense/Base/BaseModel.php(551): OPNsense\Base\FieldTypes\BaseField->getNodes()
#7 /usr/local/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php(220): OPNsense\Base\BaseModel->getNodes()
#8 /usr/local/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php(208): OPNsense\Base\ApiMutableModelControllerBase->getModelNodes()
#9 /usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/SourceNatController.php(57): OPNsense\Base\ApiMutableModelControllerBase->getAction()
#10 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Dispatcher.php(166): OPNsense\Firewall\Api\SourceNatController->getAction()
#11 /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))
#12 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(139): OPNsense\Mvc\Router->performRequest(Object(OPNsense\Mvc\Dispatcher))
#13 /usr/local/opnsense/www/api.php(38): OPNsense\Mvc\Router->routeRequest('/api/firewall/s...', Array)
#14 {main}
[06-Aug-2026 10:00:01 Europe/Berlin] PHP Fatal error:  Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php on line 159
Stack trace:
#0 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php(170): OPNsense\Base\FieldTypes\BaseListField->getNodeOptions()
#1 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(739): OPNsense\Base\FieldTypes\BaseListField->getNodeData()
#2 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(737): OPNsense\Base\FieldTypes\BaseField->getNodes()
#3 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(737): OPNsense\Base\FieldTypes\BaseField->getNodes()
#4 /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php(737): OPNsense\Base\FieldTypes\BaseField->getNodes()
#5 /usr/local/opnsense/mvc/app/models/OPNsense/Base/BaseModel.php(551): OPNsense\Base\FieldTypes\BaseField->getNodes()
#6 /usr/local/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php(220): OPNsense\Base\BaseModel->getNodes()
#7 /usr/local/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php(208): OPNsense\Base\ApiMutableModelControllerBase->getModelNodes()
#8 /usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/SourceNatController.php(57): OPNsense\Base\ApiMutableModelControllerBase->getAction()
#9 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Dispatcher.php(166): OPNsense\Firewall\Api\SourceNatController->getAction()
#10 /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))
#11 /usr/local/opnsense/mvc/app/library/OPNsense/Mvc/Router.php(139): OPNsense\Mvc\Router->performRequest(Object(OPNsense\Mvc\Dispatcher))
#12 /usr/local/opnsense/www/api.php(38): OPNsense\Mvc\Router->routeRequest('/api/firewall/s...', Array)
#13 {main}

I asked the AI and there seems to be a relation between the empty NAT Mode and the php error.

Any Idea to solve this?
Title: Re: after SNAT Migration: PHP Fatal error: Allowed memory size of 1073741824 byte
Post by: Monviech (Cedrik) on August 06, 2026, 11:00:09 AM
Hello, can you try the following patch:

opnsense-patch https://github.com/opnsense/core/commit/979ff9e
If you don't know how to install the patch:
- Open a Shell (e.g. via SSH, terminal...)
- log in as root
- Select 8
- Enter the above patch command without the "#"
- If you want to revert the patch just execute the same command again.
Title: Re: after SNAT Migration: PHP Fatal error: Allowed memory size of 1073741824 byte
Post by: c-mu on August 06, 2026, 11:06:27 AM
Thank you, that worked! Will it be implemented in the upcoming version?
Title: Re: [fixed ]after SNAT Migration: PHP Fatal error: Allowed memory size of 10737418
Post by: Monviech (Cedrik) on August 06, 2026, 11:07:45 AM
Nice, I'll push it to master then. Yeah it will most likely be in the next version the next week.

Thanks for testing.

Backlink: https://github.com/opnsense/core/pull/10674