How to handle options no longer available?

I was testing a new PR which adds the option “force-actual-date” which is not for backups but for the Duplicati application.

I then changed to another code branch which did not have that option and now I keep get a warning that “force-actual-date” is not a valid option. However, since it is not in the code it isn’t displayed on the page and I can’t remove it.

This raises the question about removing options from Duplicati in the future. Going into the DB to remove it isn’t a good solutions for users when Duplicati happens to remove options in the future.

So how best to handle this? If an option is not available in the Duplicati application code should the option be to quietly remove it from the database? what about options for backups should the same happen?

I’m thinking unknown options should always be quietly removed from the DB and logged as informational. If not removed then there is a chance a future option with maybe a different function but with the same name could have very unexpected results for a user.

I don’t have a good strategy for it.

I dislike automatic removal, because the user might depend on the option, and will be surprised to find out both that the option was removed and the effects are no longer applied.

Previously, I have just issued the warning, such that the user at least knows something has changed and they should look at it.

Even if the option is not shown, it should be visible in the text representation. I can see that you have it as a global option, which means it should be under the “Settings” page.

My suggestion would be to display the option (even though it does not exist) and mark it clearly as “invalid” in the UI. That makes it simple for the user to locate and remove it.

Good idea. So maybe display it but with the input disabled and a mouseover saying “Disabled. Option unavailable.” ?