Developers are encountering issues accessing app-owned customer metafields in Shopify checkout UI extensions. The metafields return empty arrays or null values despite being properly configured and accessible via Liquid code and API calls.
Configuration attempts include:
Setting namespace as $app:testapp or $app:configuration in shopify.extension.toml
Using useAppMetafields() and useApi() hooks
Implementing subscription patterns with appMetafields.subscribe()
Key observations:
Standard (non-app-owned) metafields work correctly
Metafields are visible in Liquid templates and API responses
Console logs show metafields exist but return empty when accessed in extensions
Proper scopes and namespace/key matching are confirmed
Current status:
No definitive solution has been found. One developer resorted to using simple settings as a workaround. A GitHub issue reference was shared suggesting a subscription-based approach, but subsequent attempts still yield null results. The discussion remains open with multiple developers seeking guidance.
Summarized with AI on October 29.
AI used: claude-sonnet-4-5-20250929.
Didnt find an aswer to this problem in exisitng threads, probably someone can help me with it.
I have a checkout ui extension where I wanted to access the app owned customer metafield (create from app with namespace: $app:testapp and name: testmeta and it is under customer objects). I was trying to put this inside cunfiguration:
This gives empty array. The customer is logged into the account so this is definitely not the reason. Also this way works fine if the metafield is standard (not the app owned)
Unfortunately no, I endup using simple settings to make setup for the Checkout UI extension, which is rather weak solution, but still interested of course
I’m running into an issue with my Shopify app’s Checkout UI Extension. I’ve successfully implemented and saved app-owned metafields. When I test the metafields in Liquid code, they render correctly and return the expected values.
However, when I try to access the same metafields using app.metafields in my Checkout UI Extension, the app object is null.
I’ve already confirmed:
The metafields are properly set and visible in Liquid.
The extension has the correct metafields access scopes defined in shopify.extension.toml.
The metafield namespace and key match exactly.
Has anyone faced a similar issue? Is there anything specific I need to do to make app.metafields accessible inside a Checkout UI Extension?
@Iliasshad Thanks a lot for all the support and guidance so far — I really appreciate the help from this awesome community!
I’m almost there, but I’m still running into an issue where the result is coming back as null. I’m double-checking my query and data sources, but not seeing anything obvious yet.