translatableContent is an empty array

Topic summary

A developer is encountering an issue where the translatableContent array returns empty when querying a ProductOptionValue resource via Shopify’s GraphQL API, preventing translation functionality.

Key Details:

  • The query for gid://shopify/ProductOptionValue/5881291145563 returns an empty translatableContent array, despite the resource existing and being retrievable through product queries
  • Other resources in the shop (including other product option values) translate successfully
  • Without the digest value from translatableContent, translations cannot be registered

Attempted Workaround:
The developer tried manually creating a SHA256 digest and using the translationsRegister mutation with key “name”, but received an error: “Key name is not a valid translatable field”

Current Status:
The issue remains unresolved. The developer has requested assistance from the Shopify team to understand why translatableContent is empty for this specific resource and how to enable translations for it.

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

TranslatableContent returned by Shopify is an empty array, which means no digest. No digest means no translation possible. Some other resources (including product option values) in the shop have translatable just fine.

Why is the translatableContent empty and how to get around this?

query {
  translatableResourcesByIds(first: 10, resourceIds: ["gid://shopify/ProductOptionValue/5881291145563"]) {
    edges {
      node {
        resourceId
        translatableContent {
          key
          value
          digest
          locale
        }
      }
    }
  }
}

output:

{
    "data": {
        "translatableResourcesByIds": {
            "edges": [
                {
                    "node": {
                        "resourceId": "gid://shopify/ProductOptionValue/5881291145563",
                        "translatableContent": []
                    }
                }
            ]
        }
    },
}

of course this product option value exists and is returned when querying it by product id:

{
   "id": "gid://shopify/ProductOptionValue/5881291145563",
   "name": "M",
   "translations": []
}

Moreover, i tried to create the digest myself, even if i was skeptical if this is going to work (I was right), so I hashed the original content using sha256 as:

import crypto from 'crypto';

const hash = crypto.createHash("sha256").update(contentInDefaultLocale).digest("hex");

Then doing this mutation

mutation translationsRegister($resourceId: ID!, $translations: [TranslationInput!]!) {
          translationsRegister(resourceId: $resourceId, translations: $translations) {
              userErrors {
                  message
                  field
              }
              translations {
                  key
                  value
                  locale
              }
          }
      }

#data:

[{
  gid         : "gid://shopify/ProductOptionValue/5881291145563",
  translations: [{
    key                      : "name",
    locale                   : "ro",
    value                    : contentInDefaultLocale,
    translatableContentDigest: hash,
  }]
}]

i get this error:

[
  {
    message: 'Key name is not a valid translatable field',
    field: [ 'translations', '0', 'key' ]
  }
]

“name” should be a valid key in this case ?

Dear shopify team, any help with this?