Our app currently fetches theme files to detect whether or not a merchant has enabled our app’s app blocks as described here and were excited by the release of new app bridge functionality that would make this check much easier. However, while investigating the shopify.app.extensions() return values, it appears the function doesn’t distinguish between the app block being enabled or disabled. Curious if there are plans to add disabled to the status return values?
Hi @Jason_Freeman , thanks for the question.
To my knowledge, only App Embeds can be enabled/disabled. App Blocks as a whole don’t have a ‘enabled/disabled’ property (although you could add one in the settings, and the parent section could be enabled/disabled)
If you’re referring to App Embeds, the App Embed would show up as ‘available’ if it’s Disabled (or 'unavailable’ if the conditions for its availability aren’t met)
Were you asking about App Embeds, or is your question different?
Thanks
Bashu
Additionally, since this question was posed, we’ve fixed a bug that was causing disabled App Embeds to show as active.
@Bashu_Naimi-Roy Any change of getting a fix for this?
Hi Jason, thanks for your patience on this, and sorry for the delay.
Good news: this is now fixed and deployed. Your repro in the screenshot was helpful in tracking this down, so thank you for that work.
Here’s what was happening. When you hide an app block with the eye icon and save, the theme records "disabled": true on that block in the template JSON (the product.json you shared).
We were already honoring that flag for App Embeds, but not for App Blocks, so the block still got counted as an activation and the extension came back as ACTIVE even though the storefront wasn’t rendering it. We also weren’t honoring it for a disabled parent section, or for blocks nested inside a disabled block or section.
With the fix, shopify.app.extensions() now skips disabled app blocks (and disabled sections, and anything nested inside them), which matches what actually renders on the storefront. So a block you’ve hidden with the eye icon will no longer report as ACTIVE; it reports as AVAILABLE instead (present in the theme, but not actively rendering).
That matches how disabled App Embeds have always behaved.
On your original question about a dedicated disabled status value: we didn’t add a separate status for “present but disabled”, but the practical effect now is hopefully what you were after. ACTIVE now reliably means the block is present and enabled, and a disabled block drops back to AVAILABLE, so you can distinguish the two from the status alone, without reading theme files.
Would you mind giving it another try and confirming it behaves as you’d expect on your end? If anything looks off, let me know please.
Hi @Bashu_Naimi-Roy - yep, tested this locally and it’s working for me! Thanks for the fix.

