Your question has been submitted and is awaiting moderation.
I think I've founda bug in 7.0.3, I know it's not the latest version.
The issue is as follows:
If I create a module that stores values from the UrlControl, one of those values is possibly in the form of FileId=1234.
If the file is deleted from the system, the file link will be an orphan. GetModuleSetting on the database returns Null.
I understand this problem, and it makes sense to suppress the incorrect data.
The problem starts when you want to fix the value - you can't save to the setting using UpdateModuleSetting. These means that if things do go out of kilter, users can't fix the issues using their familiar solutions.
The problem is caused because the database layer GetModuleSetting returns NULL, but UpdateModuleSettingInternal uses GetModuleSetting.
In general, UpdateModuleSettings should retrieve a database direct row, or use a function that does not seek to cook the data before it updates it.
Is this still a bug? Do I have to report it somewhere?