Hi, I don't think it's by design, the Sales Header was cleaned for API scenarios over the years and the warehouse tables never had the same pass.
For the workaround, first check if your version has an OnBeforeValidate event with IsHandled on that field. If it's there, subscribe, do your own logic, set IsHandled true and the Confirm never runs. If not, I'd stop PATCHing that field at all and put a bound action on the OData page instead, then inside the codeunit set the date and update the lines yourself without going through Validate. Bit more code, but you don't fight the base app on every upgrade.
Glad to help - follow up if anything is unclear.
► If this solved it, marking it verified helps others too.
Regards,
Grigorios Mavrogeorgis
Business Central Consultant & AL Developer
Work: Gmsoft Limited
Blog: insidebusinesscentral
LinkedIn: linkedin.com/in/gregorymavrogeorgis