product level metafields are not updated as expected

Topic summary

A developer is experiencing inconsistent behavior when updating product-level metafields via Shopify’s GraphQL API. Two metafield definitions were created with the same namespace (‘shipturtle’) but different keys:

  • Test Physical (key: sp_67f64aed793c2) - updates successfully
  • Test Digital (key: sp_67f64b081650b) - fails to update

Both metafields are of type list.url and contain similar CloudFront URL arrays. The developer is using a productUpdate mutation combined with productSet to update both metafields simultaneously, but only one updates as expected.

Current Status: The issue remains unresolved. Another community member requested better formatting and a clearer problem statement, suggesting the original post was difficult to parse due to large code blocks and unclear structure. No technical solution or root cause has been identified yet.

Summarized with AI on October 27. AI used: claude-sonnet-4-5-20250929.

We created two product-level metafield definitions on Shopify: Test Physical with key: sp_67f64aed793c2 and namespace: shipturtle Test Digital with key: sp_67f64b081650b and namespace: shipturtle Both metafields are initially created successfully. However, when we try to update them, we face an issue where the “Test Physical” metafield is updated as expected, but the “Test Digital” metafield is not being updated. We’re unable to identify the root cause of this problem. The following is the payload we’re using to update the product with the metafields: { “query”: “mutation updateProductWithMetafields($productSet: ProductSetInput!, $synchronous: Boolean!, $productId: ID!, $metafieldInput: [MetafieldInput!]!, $metafieldsToDelete: [MetafieldIdentifierInput!]!) { metafieldUpdate: productUpdate(input: { id: $productId, metafields: $metafieldInput }) { userErrors { field message } } metafieldsDelete(metafields: $metafieldsToDelete) { deletedMetafields { key namespace ownerId } userErrors { field message } } productSet(input: $productSet, synchronous: $synchronous) { product { id title tags vendor productType descriptionHtml status options { name values } metafields(first: 250) { edges { node { id key type value namespace } } } media(first: 250) { edges { node { … on MediaImage { id alt image { url } } } } } variants(first: 100) { edges { node { id barcode compareAtPrice inventoryItem { id sku tracked measurement { weight { unit value } } } title taxable inventoryPolicy inventoryQuantity price } } } variantsCount { count } } userErrors { field message code } } }”, “variables”: { “productId”: “gid://shopify/Product/9911928946966”, “productSet”: { “id”: “gid://shopify/Product/9911928946966”, “tags”: , “title”: “Test Meta 1”, “status”: “ACTIVE”, “vendor”: “daoud-api”, “variants”: [ { “sku”: “sfds”, “price”: 6.0, “barcode”: “fdsfd”, “taxable”: true, “optionValues”: [ { “name”: “Default Title”, “optionName”: “Title” } ], “compareAtPrice”: 0, “inventoryPolicy”: “DENY” } ], “productType”: null, “productOptions”: [ { “name”: “Title”, “values”: [ { “name”: “Default Title” } ] } ], “descriptionHtml”: "

sadsad

" }, “synchronous”: true, “metafieldInput”: [ { “key”: “sp_67f64b081650b”, “type”: “list.url”, “value”: “["[https://d2i9a0muccv7uq.cloudfront.net/1402953/leads.txt\](https://d2i9a0muccv7uq.cloudfront.net/1402953/leads.txt\)”,"[https://d2i9a0muccv7uq.cloudfront.net/1402954/segni.xlsx\](https://d2i9a0muccv7uq.cloudfront.net/1402954/segni.xlsx\)“,"[https://d2i9a0muccv7uq.cloudfront.net/1402956/st_postal_upload1111.xlsx\](https://d2i9a0muccv7uq.cloudfront.net/1402956/st_postal_upload1111.xlsx\)”]“, “namespace”: “st_digital_product” }, { “key”: “sp_67f64aed793c2”, “type”: “list.url”, “value”: “["[https://d2i9a0muccv7uq.cloudfront.net/1402951/leads.txt\](https://d2i9a0muccv7uq.cloudfront.net/1402951/leads.txt\)”,"[https://d2i9a0muccv7uq.cloudfront.net/1402952/segni.xlsx\](https://d2i9a0muccv7uq.cloudfront.net/1402952/segni.xlsx\)”,"[https://d2i9a0muccv7uq.cloudfront.net/1402955/st_postal_upload1111.xlsx\](https://d2i9a0muccv7uq.cloudfront.net/1402955/st_postal_upload1111.xlsx\)“]”, “namespace”: “shipturtle” } ], “metafieldsToDelete”: } } In this request, we update both metafields, but only the “Test Physical” metafield updates successfully. We are unable to figure out why the “Test Digital” metafield does not update.

@KhushiPandya re-read your post. Is there a question in that wall of code?

There is a code formatting button , use it.

Don’t bury the ask, do the description of the core issue then the samples.

Respect others people time when seeking aid and make the effort in presenting YOUR problems.

http://www.catb.org/~esr/faqs/smart-questions.html

https://community.shopify.com/c/blog/how-to-get-support-from-the-community/ba-p/2254458