How to fix it
Three steps, in the right order
Order matters: first you unblock operations, then you apply the real fix. What you must never do is patch core.
Step 1 (definitive) — Update or replace the connector
The correct fix is a connector actually built and tested on Odoo 19. The module's author needs to drop the force_qty argument: on v19 you reserve by setting the move's quantity and calling _action_assign() without that parameter. Until the connector makes that change, the error will keep coming back.
# Odoo <= 18 (the old connector — what crashes on v19)
move._action_assign(force_qty=qty)
# Odoo 19 (correct signature — no force_qty)
move.quantity = qty # quantity is set on the move
move._action_assign() # reserves without the removed argumentStep 2 (golden rule) — Do not patch the stock core
It is tempting to write a monkey-patch and put force_qty back into StockMove._action_assign(). Don't. You are manually reintroducing a signature Odoo removed on purpose, you will break on every minor update, and you fall out of support. The problem lives in the connector; it gets fixed in the connector.
Step 3 (temporary patch) — Reserve the order by hand
To unblock a stuck order right now, go to the delivery in Odoo and reserve it manually ("Check availability" / assign the quantities). By reserving it yourself, the flow never enters the connector's forced-reservation path, so the call with force_qty is never triggered and the delivery moves forward. It is an operational stopgap while the updated connector arrives.
Important: the step-3 patch unblocks orders one by one, but it does not fix the underlying cause. Every new order that touches forced reservation will crash again until the connector stops passing force_qty.