Hey @RedYellowBlue ,
After taking a closer look, I wasn’t able to replicate any bugs or unexpected functionality with fulfillment or fulfillment orders.
To clarify from our docs really quickly: “…A fulfillment order represents a group of one or more items in an order that are to be fulfilled from the same location”. Generally, this would mean a minimum of one fulfillment order per location. If you have items from multiple locations on an order, more than one fulfillment (fulfillment_id) will be needed, again per location (location_id) or per fulfillment_order (fulfillment_order_id).
This means that if you aren’t specifically stating the line_item or fulfillment_order, as is the case in the example request you shared, the error returned would be expected. Specifically replicating a scenario like the one you shared, I was able to create and update fulfillments without error from a few different approaches:
The first can be done using two separate fulfillment requests, both would include a location_id and array of one or more line_item “id” per this example request. This generates fulfillment_id(s) that can then be used to update other data, and ultimately complete fulfillments for the order.
The other method uses the fulfillment order resource and while the process is largely the same, instead of providing location_id we will need to query for all fulfillment_order “id” and fulfillment_order_line_items first. Once you have this info, two requests will also be required to process separate fulfillments from each fulfillment order, using the line_items_by_fulfillment_order array (example request).
Hope that helps clarify or gives a new starting point, and that you are able to use the info above to find a solutions that fits best - Cheers!