Media Pickers with Start Node - "The selected item is from the wrong folder."

Testing an upgrade to v17 and I can’t publish lots of pages. Any block list item with an image that has an image that isn’t in the “right” folder is throwing this error “The selected item is from the wrong folder.”"

I assume the start node Id in the media picker wasn’t previously enforced (v13) on each publish - just on loading the media picker.

I think we’ve got legacy content where items have been picked outside of the start node - probably this has been set later after the content was created.

What I probably need is an option on the media pickers to have a soft start node (and surely this would be a nice feature if we could allow editors to “start” in the correct place but pick from elsewhere?) - and remove the validation on publish. So future content is enforced to some degree (well the media is almost certainly picked / uploaded to the correct place) but so I don’t have to go and move / copy lots of already picked media.

Is this a possible feature to add? Would I be better cloning the media picker and trying to add this myself? Currently I’m looking at having to remove all start media nodes… which will cause chaos as the editors will run riot!

Anyone hit anything similar?

Uncle Claude is suggesting I can write a custom validator for the MediaPicker3PropertyValueEditor inheriting from IValueValidator/IDataValueEditor .

This sounds promising rather than trying to clone and keep up to date the media picker as a new data type… anyone done anything similar?

Hmm a bit more digging I’ve been looking at the MediaPicker3PropertyEditor.cs

StartNodeValidator is a sealed internal class so I’m guessing I can’t override anything here?

I think need to request a feature on this to have a “soft” enforcement of the start node. For my fix just allow anything to publish but a feature might be to allow the editor to browse outside the starting node. The naming of this startNodeId would just it’s just a start … not enforceRootNodeId!? Has it always enforced… my memory is in very old Umbraco you could browse elsewhere..