Hi,
Check the Route on the Product
Go to:
Inventory > Products > Select your Product > Inventory Tab
See if the "Manufacture" and "Make To Order (MTO)" routes are both enabled.
This combination often causes MOs to be automatically confirmed if a valid BoM exists.
Check the BoM
Go to:
Manufacturing > Bills of Materials > Select the BoM
If the BoM is valid and linked, Odoo tries to confirm the MO automatically during sale order confirmation.
Removing the BoM or creating a dummy BoM with a note to update manually can help keep MOs in draft state.
Enable Developer Mode to View More Options
Go to Settings > Activate Developer Mode (bottom of the page).
Then re-check the routes and procurement rules under:
Inventory > Configuration > Routes
Manufacturing > Configuration > Work Orders / Operation Types
Sometimes, a custom or updated procurement rule (even from a Studio action or upgrade) could force MO confirmation.
Hope it helps.
Which version of Odoo?
odoo 18
Odoo uses the first Bill of Materials for each Product that it finds starting from the top of the list. If it is empty, it can't confirm the Manufacturing Order so leaves it in draft.
This is the normal configuration to have Manufacturing Orders created in draft.
If you are using this feature, check if the empty BoM is now below another BoM for the same Product.