Filesystem Permission Error - Checkout UI Extension Development

Hi, I'm trying to build a Thank You page extension for my app following the Shopify docs. The AI assistant has tried to fix a persistent filesystem error without success. I'm not a developer, so I'm still learning about the platform and Shopify’s requirements, so I asked the AI to summarize the problem. ISSUE SUMMARY: EACCES: permission denied, mkdir '/gadget/app/extensions/my-extension/dist' Shopify CLI fails to create the dist/ build folder for Checkout UI Extension (purchase.thank-you.block.render) when running yarn shopify:dev in Gadget cloud environment. \ud83c\udfd7️ ENVIRONMENT: Platform: Gadget Cloud Development Environment Extension Type: checkout_ui_extension Target: purchase.thank-you.block.render Command: yarn shopify:dev (Shopify CLI in Gadget terminal) \ud83d\udcdd EXTENSION CONFIGURATION: toml api_version = "2024-10" name = "my-checkout-extension" handle = "my-checkout-extension" type = "checkout_ui_extension" output_dir = "/tmp/my-extension-dist" # Attempted fix [[targeting]] target = "purchase.thank-you.block.render" [capabilities] network_access = true api_access = true \ud83d\udd0d BEHAVIOR COMPARISON: ✅ Theme Extension: Compiles successfully, no filesystem issues ❌ Checkout UI Extension: Cannot create dist/ folder \ud83d\udd27 ATTEMPTED SOLUTIONS (ALL FAILED): Manual directory creation: bash mkdir dist Result: Permission denied Temporary directory + symlink: bash mkdir -p /tmp/my-extension-dist ln -sfn /tmp/my-extension-dist dist Result: ln: failed to create symbolic link 'dist': Permission denied TOML output_dir configuration: toml output_dir = "/tmp/my-extension-dist" Result: Shopify CLI ignores this setting and still attempts to create local dist/ folder
8 Replies
DiegoDR3
DiegoDR3OP2w ago
ERROR LOG: 00:52:12 │ my-checkout-extension │ EACCES: permission denied, mkdir '/gadget/app/extensions/my-checkout-extension/dist' ❓ QUESTIONS for support: Are there specific filesystem restrictions for checkout_ui_extension types in Gadget cloud environment? Why do Theme Extensions work but Checkout UI extensions fail? Is there a Gadget-specific configuration to handle Shopify CLI build output for checkout extensions? Should we develop this extension locally using ggt dev instead of cloud terminal? \ud83c\udfaf GOAL: Enable Checkout UI Extension development in Gadget cloud environment for purchase.thank-you.block.render target.
Chocci_Milk
Chocci_Milk2w ago
Hello, This is because the Gadget terminal doesn't have permission to write to the application. You will need to run shopify app dev locally until we've had a chance to address security concerns we have with allowing the terminal to write to the app
DiegoDR3
DiegoDR3OP2w ago
Ok, thanks. But when developing the Thank You Page extension locally with shopify app dev, will the extension automatically sync back to the Gadget cloud environment, or will I need to take additional steps to deploy the built extension to the cloud app?; also do you know approximately when those security concerns will be solved?, I mean should I wait until then?
Chocci_Milk
Chocci_Milk2w ago
If you're running ggt dev locally, your code will be in the app. Note that deployments of extensions is not done by Gadget but instead needs to be done using the Shopify CLI since Shopify hosts extensions We don't have an ETA for the terminal functionality at this time
DiegoDR3
DiegoDR3OP2w ago
So Just to confirm, those extension files will also sync back to the Gadget cloud editor automatically? And the AI can continue editing them in the cloud afterward?
Chocci_Milk
Chocci_Milk2w ago
Yes, ggt dev is a command the syncs the code between your local machine and the cloud environment. If that's running, any changes that are made locally will also be reflected in the cloud env
DiegoDR3
DiegoDR3OP2w ago
Great, Thank you
Chocci_Milk
Chocci_Milk2w ago
No problem!

Did you find this page helpful?