Postponed
Project:
Drupal core
Version:
main
Component:
options.module
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
16 Sep 2026 at 22:36 UTC
Updated:
17 Sep 2026 at 08:18 UTC
Jump to comment: Most recent
Follow up from #3095257: Option for _none is removed once a field has a value and can cause accidental data corruption,
In fact, the best action would be to show a message that the previously selected value is no longer available.
Moving to follow up as that's a nice to have but shouldn't block the parent
TODO
TBD
TBD
TBD
TBD
TBD
TBD
Comments
Comment #2
alexpottI dispute that this is the best action. The real problem is the other end of this - it's allowing an entity reference to be deleted when it is the only value set in a required field. At that point you make an entity invalid. It is broken until you edit it and set a value. Unfortunately solving this in core in a performant way will be nigh on impossible. The entity usage model offers some help here - but it's not a complete fix.
Comment #3
smustgrave commentedThink it's a blocker for #3095257: Option for _none is removed once a field has a value and can cause accidental data corruption ?
Can't think of a complete solution but the scenario where all values may be deleted may be low?
Comment #4
mstrelan commentedIf it makes a difference, it's not necessarily only deletions. It can be caused by a change of access, such as a node being unpublished or a user account being blocked. The latter was the cause of the original issue - we had users assigned to nodes in a user reference field, and when a user left the org and was blocked the node was then assigned to some other user in the list the next time the node was saved.
Comment #5
alexpottI don't think this is a blocker. I'm just not sure a message is particularly worthwhile given the old value is either inaccessible or deleted. Hmmm.... actually as I write that I think the access situation does deserve a message but the deletion does not. Because with the deletion the old value is no longer possible but with access it is a different issue and changing the value possibly is not what you should be doing.