A developer encountered a 422 error (“Tracking information update failed”) when calling Shopify’s fulfillment tracking update API endpoint. The issue affected only one store while others worked with identical requests.
Resolution:
Working with Shopify support revealed the problem was permission-related. Beyond the standard write_orders and write_merchant_managed_fulfillment_orders permissions, the API also requires:
write_third_party_fulfillment_orders permission
Additional Context:
Multiple community members confirmed this permission fix resolved similar vague error messages
A working Python implementation using the Shopify GraphQL API was shared, demonstrating how to query orders by tag and update tracking information programmatically
The discussion is resolved with the permission requirements now clarified for future developers encountering this error.
Summarized with AI on November 22.
AI used: claude-sonnet-4-5-20250929.
Through the shopify team, my problem has been solved. In addition to the permission of write_merchant_managed_fulfillment_orders, the permission of write_third_party_fulfillment_orders needs to be added.
grab some orders with “test” tag, json.loads str->dict
result = json.loads(shopify.GraphQL().execute(‘{orders(first:10, query:“tag:test”){edges{node{id tags}}}}’))
data = [d.get(‘node’) for d in result.get(“data”).get(‘orders’).get(‘edges’)]
order_ids = [item.get(‘id’).split(‘/’)[-1] for item in data]
for id in order_ids:
order = shopify.Order.find(id)
print(“order”, order.id)
for f in order.fulfillments:
print(“fulfillement id”, f.id)
f.update_tracking(tracking_info={‘number’:‘YOANNTEST02’,“company”:“la poste”,“url”:None},notify_customer=False)
print(“modify tracking number”)