It's your code "hardcoding" it when you select something from dropdown. How's that user-induced?! Users assume the GUI exists for a reason, and have a need to check the settings!
Stupidity illustrated:
Step 0:
$ grep firmwareurl /cf/conf/config.xml
<firmwareurl>https://updates.pfsense.org/_updaters/amd64</firmwareurl>
Step 1:
Uncheck, Save, as advised above:
$ grep firmwareurl /cf/conf/config.xml
$
Good that we spared one line in config.xml! To make it more helpful, there's nothing useful visible in the GUI either. ::)
Step 2:
Select the (recommended) "Current architecture", watch the "Use an unofficial server for firmware upgrades" getting automagically ticked. Click Save.
$ grep firmwareurl /cf/conf/config.xml
<firmwareurl>https://updates.pfsense.org/_updaters/amd64</firmwareurl>
Result:
We are back to Step 0. Wash, rinse, repeat. >:( >:( >:(
Bonus:
I also see this note there:
NOTE: When a custom URL is configured, the system will not verify the image has an official digital signature
but cannot see that coded anywhere. Sigh.
Tell people what they have set (even by default) in the GUI. Instead of leaving it blank – and leaving the config.xml blank as well.