Customer Account Extensions do not respect Theme Editor visibility settings

Hi everyone! Customer account extensions, regardless of target do not respect the Theme Editor block visibility settings and are always rendered.

Steps to reproduce

  1. Generate a new extension with shopify app generate extension (choose customer-account)
  2. Deploy or run shopify app dev
  3. Open the Shopify Theme Editor; Navigate to the Order Status page which is the default target for customer-account-extensions.
  4. Add the block for the extension
  5. Navigate to the live Order Status page and confirm the block is visible
  6. Toggle off the visibility for the app block in the Shopify Theme Editor
  7. Refresh the live Order Status page - the extension is still visible even though the visibility toggle is off

Expected Behavior

When a merchant hides (or removes) a customer account block extension in the active checkout/accounts configuration and saves, the extension should not render on the corresponding live customer account page — consistent with the editor preview and with how merchants interpret the visibility control.

Actual Behavior

  • Editor preview: Hidden state works after Save.

  • Live customer account page: Block still renders; extension JavaScript still runs.

  • No custom visibility logic in app code — the scaffold only calls render() with a banner component.

Environment

  • Extension created with shopify app generate extensioncustomer account UI template (stock scaffold, no changes)

  • Language: JavaScript (JSX)

  • UI stack: Preact 10.29.2 + @shopify/ui-extensions/preact + Polaris web components (s-banner, s-text)

  • Extension API version: 2026-04 (shopify.extension.toml)

  • @shopify/ui-extensions: 2025.10.0

  • Shopify CLI: 3.94.3

  • Target: default - customer-account.order-status.block.render; tried customer-account.order-index.block.render too and the behavior is the same.

  • Store: New customer accounts (not legacy)

  • Configuration: Single active checkout/accounts configuration

Extension code

import '@shopify/ui-extensions/preact';
import {render} from "preact";

export default async () => {
  render(<Extension />, document.body)
}

function Extension() {
  return (
    <s-banner>
      <s-text>
        {shopify.i18n.translate("earnPoints")} dsadsa
      </s-text>
    </s-banner>
  );
}

Extension Configuration

# Learn more about configuring your Customer account UI extension:
# https://shopify.dev/api/customer-account-ui-extensions/unstable/configuration

# The version of APIs your extension will receive. Learn more:
# https://shopify.dev/docs/api/usage/versioning
api_version = "2026-04"

[[extensions]]
name = "customer-account-test"
handle = "customer-account-test"
type = "ui_extension"
uid = "541bb7f4-2a43-6f59-3384-428b804471e7165d661a"

# Controls where in Shopify your extension will be injected,
# and the file that contains your extension’s source code. Learn more:
# https://shopify.dev/docs/api/customer-account-ui-extensions/unstable/extension-targets-overview

[[extensions.targeting]]
module = "./src/OrderStatusBlock.jsx"
target = "customer-account.order-status.block.render"

[extensions.capabilities]
# Gives your extension access to directly query Shopify’s storefront API.
# https://shopify.dev/docs/api/customer-account-ui-extensions/unstable/configuration#api-access
api_access = true

# Gives your extension access to make external network calls, using the
# JavaScript `fetch()` API. Learn more:
# https://shopify.dev/docs/api/customer-account-ui-extensions/unstable/configuration#network-access
# network_access = true