**
download_rules.csv
download_rules.csv.zip
**
Hi,
Please see issues below.
Important notices
Model used:
ChatGPT (OpenAI GPT-5.5)
Extent of AI involvement:
AI was used to help organize the investigation, summarise the collected evidence, and format this bug report. All testing, command output, screenshots, observations and verification were performed by me.
Describe the bug
After upgrading an existing OPNsense installation that uses legacy firewall rules to OPNsense 26.7.1, the new Firewall Rules migration process does not function correctly.
The Migration Assistant correctly detects my legacy firewall rules, however:
- Export current rules downloads a 0-byte
download_rules.csv.
- The new Firewall → Rules page does not display all legacy rules. At least one disabled rule present in
/conf/config.xml is missing from the Rules page.
- The legacy firewall itself continues to operate correctly.
Because the exported CSV is empty, it is not safe to continue with the migration.
To Reproduce
- Upgrade an existing installation using legacy firewall rules to OPNsense 26.7.1.
- Open Firewall → Migration Assistant.
- Observe that legacy firewall rules are detected (47 rules in my case).
- Click Export current rules.
- The browser downloads
download_rules.csv.
- Inspect the downloaded file.
Result
The downloaded file is:
File size:
Contents:
Additional observation:
- Open Firewall → Rules.
- Compare the displayed legacy rules with
/conf/config.xml.
- Observe that at least one disabled rule is missing from the Rules page despite existing in the configuration.
Expected behaviour
The Migration Assistant should export every detected legacy firewall rule into a valid CSV suitable for import.
The Firewall → Rules page should display every detected legacy firewall rule, including disabled rules.
Actual behaviour
The Migration Assistant reports:
Export current rules (47)
However:
download_rules.csv is 0 bytes
- The CSV contains no header
- The CSV contains no rules
- At least one disabled legacy firewall rule is not shown in the new Rules page.
Describe alternatives you considered
Before reporting this issue I performed the following troubleshooting:
- Upgraded from 26.7.0 to 26.7.1
- Cleared browser cache
- Hard refresh (Ctrl + F5)
- Tested with Firefox
- Tested with Chromium
- Verified legacy firewall rules still exist in
/conf/config.xml
- Verified rule count
- Verified disabled rule count
- Compared missing rule against XML
- Checked
configd logs during export
The behaviour remained unchanged.
Screenshots
(Attached)
- Migration Assistant
- Firewall → Rules page
- Empty
download_rules.csv
- Missing disabled rule
- Browser screenshots (if useful)
Relevant log files
No relevant errors were observed during the export.
The configd logs show no migration/export related activity when the CSV export is performed.
Rule count verification
grep -c "<rule uuid=" /conf/config.xml
Output:
Disabled rule count
grep -c "<disabled>1</disabled>" /conf/config.xml
Output:
Example missing rule
The following disabled rule exists in /conf/config.xml but is not displayed by the new Firewall → Rules page.
UUID:
2c772765-4c1e-4c61-9f34-0b7926bbf8db
Description:
VM_PlexFileServer_Mint_210_212 Internet Full Access Rule
Relevant XML:
<rule uuid="2c772765-4c1e-4c61-9f34-0b7926bbf8db">
<type>pass</type>
<interface>opt8</interface>
<ipprotocol>inet46</ipprotocol>
<statetype>keep state</statetype>
<descr>VM_PlexFileServer_Mint_210_212 Internet Full Access Rule</descr>
<direction>in</direction>
<quick>1</quick>
<protocol>tcp/udp</protocol>
<source>
<address>VM_PlexFileServer_Mint_210_212</address>
</source>
<destination>
<address>Internet_Only_Invert_Dst</address>
<not>1</not>
</destination>
<log>1</log>
<disabled>1</disabled>
</rule>
Nothing about this rule appears unusual.
Additional context
The Migration Assistant correctly detects 47 legacy firewall rules.
The legacy firewall configuration appears intact.
The firewall continues operating normally using the legacy rule set.
The downloaded CSV is always 0 bytes, preventing safe migration.
Because of this, I have not attempted to:
- Import the empty CSV.
- Remove the legacy firewall rules.
I did not want to risk losing the existing firewall configuration.
Environment
Software
Hardware
AMD GX-420CA SOC with Radeon™ HD Graphics
Network Interfaces
4 × Broadcom NetXtreme BCM5719 Gigabit Ethernet PCIe (bge0–bge3)
1 × Realtek RTL8111/8168/8211 PCI Express Gigabit Ethernet Controller (re0)
Browsers tested
Both browsers produce identical behaviour.
Attachments
- Migration Assistant screenshots
- Firewall → Rules screenshots
- Empty
download_rules.csv
- Relevant
/conf/config.xml excerpts
- Configuration backup (available if required)
Thank you,
Anthony.
**
download_rules.csv
download_rules.csv.zip
**
Hi,
Please see issues below.
Important notices
Model used:
Extent of AI involvement:
Describe the bug
After upgrading an existing OPNsense installation that uses legacy firewall rules to OPNsense 26.7.1, the new Firewall Rules migration process does not function correctly.
The Migration Assistant correctly detects my legacy firewall rules, however:
download_rules.csv./conf/config.xmlis missing from the Rules page.Because the exported CSV is empty, it is not safe to continue with the migration.
To Reproduce
download_rules.csv.Result
The downloaded file is:
File size:
Contents:
Additional observation:
/conf/config.xml.Expected behaviour
The Migration Assistant should export every detected legacy firewall rule into a valid CSV suitable for import.
The Firewall → Rules page should display every detected legacy firewall rule, including disabled rules.
Actual behaviour
The Migration Assistant reports:
However:
download_rules.csvis 0 bytesDescribe alternatives you considered
Before reporting this issue I performed the following troubleshooting:
/conf/config.xmlconfigdlogs during exportThe behaviour remained unchanged.
Screenshots
(Attached)
download_rules.csvRelevant log files
No relevant errors were observed during the export.
The
configdlogs show no migration/export related activity when the CSV export is performed.Rule count verification
Output:
Disabled rule count
Output:
Example missing rule
The following disabled rule exists in
/conf/config.xmlbut is not displayed by the new Firewall → Rules page.Relevant XML:
Nothing about this rule appears unusual.
Additional context
The Migration Assistant correctly detects 47 legacy firewall rules.
The legacy firewall configuration appears intact.
The firewall continues operating normally using the legacy rule set.
The downloaded CSV is always 0 bytes, preventing safe migration.
Because of this, I have not attempted to:
I did not want to risk losing the existing firewall configuration.
Environment
Software
Hardware
Network Interfaces
Browsers tested
Both browsers produce identical behaviour.
Attachments
download_rules.csv/conf/config.xmlexcerptsThank you,
Anthony.