Minimum Supported Refresh Frequency for URL Tables

Started by wiring8228, Today at 02:28:19 AM

Previous topic - Next topic
Today at 02:28:19 AM Last Edit: Today at 04:09:07 PM by wiring8228
Problem Description:
When creating a firewall alias on OPNsense 26.7.1 of type "URL Table in JSON format (IPs)," setting the "Refresh Frequency" to fractional values such as 0.5 or 0.01 hours has no observable effect. The alias table does not appear to refresh at the specified interval. It is unclear what the minimum supported value is for this field.

Expected Behavior
The alias table should be fetched and updated at the interval specified by the "Refresh Frequency" field, including fractional values expressed in hours (e.g., 0.5 hours = every 30 minutes, 0.01 hours = approximately every 36 seconds).

Actual Behavior
  • With a Refresh Frequency of 0.5 hours: No refresh appears to occur at the expected 30-minute interval
  • With a Refresh Frequency of 0.01 hours: No refresh appears to occur at the expected ~36-second interval
  • Additionally, values with more than 2 decimal places (e.g., 0.001) are displayed as "0.00" after saving and reopening the alias configuration mask, suggesting the field is truncated or rounded to 2 decimal places on save

Reproduction Steps
Navigate to Firewall → Aliases in the OPNsense web interface
Click Add to create a new alias
Configure the alias with the following settings:


Save and apply the alias
Wait beyond the expected refresh interval (30 minutes for 0.5 hours)
Observe that the alias contents have not been updated


Key Question
What is the smallest supported value for the "Refresh Frequency" field when using the "URL Table in JSON format (IPs)" alias type? Are fractional values below 1 hour actually processed by OPNsense, or is the effective minimum 1 hour? If fractional values are not honored, is there an alternative mechanism to achieve more frequent alias table refreshes (e.g., cron jobs or plugin-based solutions)?


I use fractional values for hours which are working fine for numerous aliases.

I did experiment with various values but currently the smallest I use is 0.1


Thank you for your reply.

I was able to resolve the issue by entering "cidr" as the "Path expression" value. Since the first update worked fine without this value, I assumed the update mechanism was already functional, but it seems that doesn't happen until the value to be updated is known.

I checked the logs again and saw that the IP lists are being updated:

2026-08-08T15:17:02 Notice firewall processing alias url https://www.spamhaus.org/drop/drop_v6.json took 0.04s
2026-08-08T15:17:02 Notice firewall fetch alias url https://www.spamhaus.org/drop/drop_v6.json (bytes: 5915)
2026-08-08T15:07:04 Notice firewall processing alias url https://www.spamhaus.org/drop/drop_v4.json took 0.30s
2026-08-08T15:07:03 Notice firewall fetch alias url https://www.spamhaus.org/drop/drop_v4.json (bytes: 102911)
2026-08-08T14:16:26 Notice firewall processing alias url https://www.spamhaus.org/drop/drop_v6.json took 0.03s
2026-08-08T14:16:26 Notice firewall fetch alias url https://www.spamhaus.org/drop/drop_v6.json (bytes: 5915)
2026-08-08T14:06:57 Notice firewall processing alias url https://www.spamhaus.org/drop/drop_v4.json took 0.23s
2026-08-08T14:06:57 Notice firewall fetch alias url https://www.spamhaus.org/drop/drop_v4.json (bytes: 102911)

However, under Firewall > Aliases, the 'Last updated' column isn't being updated, even though the logs show that the update should have worked.

Is this a bug, or am I misunderstanding something?


I only see the 'Last updated' column update when there has been a change to the data being downloaded.