Users encountered a “Return not found” error when attempting to automate return request approvals using Shopify Flow’s returnApproveRequest mutation, despite verified return IDs and successful manual processing through the Admin UI.
Key Investigation Findings:
Return IDs were confirmed accurate across webhooks, Flow triggers, and Admin UI
Manual API requests via Postman and GraphiQL worked, but Flow-based requests failed
The mutation format and API version were correct
Root Cause & Resolution:
Identified as a scopes issue preventing Flow from writing return data
Initial fix was deployed but subsequently rolled back due to unintended side effects
Final fix successfully deployed - both returnApproveRequest and returnDeclineRequest mutations now working in Flow
Current Status:
Issue resolved and confirmed working by multiple users
One user reported brief instability accessing the customer portal, which self-resolved
The problem affected both approval and decline mutations, requiring investigation by Shopify’s returns team to address the underlying permissions configuration.
Summarized with AI on October 31.
AI used: claude-sonnet-4-5-20250929.
I am setting up a flow to automatically process return requests. When I use the “Send Admin API request” with mutation returnApproveRequest (or decline) and the “return.id” from the trigger for the input.id the step always fails with “Return not found.”
Investigation:
Verified the ID is accurate. I setup a webhook for returns/request and verified the id in the payload is the same id I am using in the flow mutation. I also checked the admin UI “Review Return Request” page and the id in the url matches (minus the gid://shopify/Return bit)
Verified the return works if done manually via the admin UI. I even checked the network tab to make sure the id being sent in the mutation is the same one I was using in flow and they matched.
The only different I notice in the Admin UI mutation call and the flow call is the input payload from the admin UI has some extra parameters (calculatedReturnId, notifyCustomer, unprocessed) but none of those show up in the docs
Verified the API version being used in flow matches the input in the flow action
Really stumped by this one. Has anyone faced this issue or a similar issue before?
You probably have a malformed request. Like extra spaces in your JSON or something like that. Look data on the workflow run log. If you can’t find it, post a screenshot here of the data in the request
Where are you requesting the return? I think you need to do that via the customer portal. Otherwise, you are just creating a return, but not an approval request.
What I could notice is that when I try to make the return using the Shopify GraphiQL App installed in my store or through the Flow App, I get the same behavior “Return not found.”
However, when I make the same request using Postman, it worked.