Bulk mutation operation Retrieve the results return null

Topic summary

Main issue: Retrieving a BulkOperation’s results (url/partialDataUrl) via a GraphQL node query returns null despite the webhook reporting the bulk mutation completed.

Observed details:

  • Webhook payload shows status=completed and a valid BulkOperation GID (gid://shopify/BulkOperation/628413137063).
  • GraphQL query to node(id: ) returns node=null on Admin API 2021-10.
  • Code snippets and IDs are central to understanding the problem.

Explanation (latest update):

  • Likely a credentials/ownership mismatch. If the webhook (or bulk operation) was created using the Shopify GraphiQL App, it may belong to different app credentials than the custom app used for querying.
  • Querying a resource created under another app’s credentials can return null.

Action items:

  • Create the webhook and perform the bulk operation via GraphQL using the same app credentials as the querying app (avoid using the Shopify GraphiQL App for creation if your queries run under a different app).

Status:

  • A user reports this fix worked. OP and another participant still ask if resolved; no final confirmation from OP. Discussion appears ongoing.
Summarized with AI on January 21. AI used: gpt-5.

I am ready to do batch update according to the instructions

https://shopify.dev/api/usage/bulk-operations/imports#retrieve-the-results

No problem up front. To the query result node returns null

webhook return

{"admin_graphql_api_id":"gid:\/\/shopify\/BulkOperation\/628413137063","completed_at":"2021-11-03T10:50:38-04:00","created_at":"2021-11-03T10:50:35-04:00","error_code":null,"status":"completed","type":"mutation"}

i post get the result

query {
  node(id: "gid://shopify/BulkOperation/628413137063") {
    ... on BulkOperation {
      url
      partialDataUrl
    }
  }
}

But the result keeps returning null

array(2) {
  ["data"]=>
  array(1) {
    ["node"]=>
    NULL
  }
  ["extensions"]=>
  array(1) {
    ["cost"]=>
    array(3) {
      ["requestedQueryCost"]=>
      int(1)
      ["actualQueryCost"]=>
      int(1)
      ["throttleStatus"]=>
      array(3) {
        ["maximumAvailable"]=>
        float(1000)
        ["currentlyAvailable"]=>
        int(999)
        ["restoreRate"]=>
        float(50)
      }
    }
  }
}
myshopify.com/admin/api/2021-10/graphql.json

Can someone help me see why?

Does everyone encounter this problem?

2 Likes

Ok. I figured this out.

If you use the shopify-graphiql-app to create your webhook, the webhook is created under different credentials than the other webhooks for your store/custom app.
You have to create the webhook through GraphQL using the credentials of your other webhooks, which most likely means just submitting the webhook creation query as you do your other GraphQL queries.

@johnLoveApp

i am facing same problem did you figure out out what is problem here? Here is my same question.
https://community.shopify.com/topic/2187963