At this time line items can’t be added to an order that’s been paid for. Also there are some asynchronous functions/calculations that take place on our end that may bump the order version. When you get this error you can gracefully handle the error by taking the provided order version and retry the request with the provided version.
At this time order line items can only be updated prior to the order being paid. Updating post payment in an upsell scenario after initial payment isn’t currently available. We’re constantly working to improve our features based on feedback like this, so I’ll be sure to share your request to the API product team.
Is updating order line items after payment a bad thing? Like, that’s the record of what was bought and paid for, so it’s usually a terrible idea to allow that record to be damaged and could be illegal in some places (as it means one can no longer rely on the order as a single source of Truth, and could be used to support fraud).
However it would be nice if, for example, a notes field or something similar could be updated, as that would allow an issue to be flagged. Or, to have a separate order field called “fulfilment_notes” which might remain writable after the order has been made. Ideally you’d be able to add individual fulfilment notes, including a shipping date etc, or stock problems, and these fields would be permanent; although honestly a simple text field would suffice to start with. There might be far better ways of doing this, have not thought it through at all.