Visible_if not working at all for app embed

visible_if prop on theme app block extension not working at all for app embed.
I followed the docs and I couldnโ€™t make this property to work at all for my app embed settings.
Take a look at example:

      {
        "type": "select",
        "id": "type",
        "label": "Type",
        "options": [
          { "value": "test1", "label": "Test1" },
          { "value": "test2", "label": "Test2" },
          { "value": "test3", "label": "Test3" }
        ],
        "default": "test1"
      },
      {
        "type": "checkbox",
        "id": "hide_something",
        "label": "Hide something",
        "default": false,
        "visible_if": "{{ block.settings.type == 'test1' }}"
      },

The result is that I see this
image
the check box is not visible no matter which one I choose.

Clarifications:

  • The theme passes the Bundling successfully so there is no errors on that side.
  • I do see the checkbox shown up only if I use this prop: {โ€œvisible_ifโ€: โ€œ{{ true }}โ€}
  • Iโ€™ve tried also printing the values of {{ block.settings.type == โ€˜test1โ€™ }} after clicking the select box and it does seem like it is changing.
  • So I think that there is probably a core issue here.
  • According to the documentation the visible_if prop should work with ALL input elements including checkbox.

I really want to use this cool feature I hope someone can help me find the root cause of this issue or Shopify staff can check this out and fix it.

Thanks

@Liam-Shopify This was working partially for us for our app - recently seems like something got shipped and now its throwing an error that visible_if is not supported in the schema. This was working till 31st july

Hey folks :waving_hand: - I was looking into something similar for another partner on the forums here:

I believe this might be related. @oribenez, are you now seeing the same error that @Sakshi_Gupta is? If so, if either of you folks are could append the --verbose command when you try to create a new version of the extension and share the output here I can take a closer look into this with the team and loop back with you.

I havenโ€™t heard back from the other partner in that thread I was helping out in, so there isnโ€™t a resolution for the original issue, but I suspect they may be related. If youโ€™re not able to grab that verbose output, no worries, just wanted to see if we could gather as much info as possible - hope to hear from you soon!

12:57:38 โ•ญโ”€ error โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
12:57:38 โ”‚                                                                              โ”‚
12:57:38 โ”‚  Version couldn't be created.                                                โ”‚
12:57:38 โ”‚                                                                              โ”‚
12:57:38 โ”‚  wishlist-theme-app-extensions                                               โ”‚
12:57:38 โ”‚                                                                              โ”‚
12:57:38 โ”‚  Validation errors                                                           โ”‚
12:57:38 โ”‚    โ€ข bundle: [blocks/wishlist-app-embed.liquid] Invalid tag 'schema':        โ”‚
12:57:38 โ”‚      settings: with id="storefront_layout_as_section_page" 'visible_if' is   โ”‚
12:57:38 โ”‚      not a valid attribute                                                   โ”‚
12:57:38 โ”‚                                                                              โ”‚
12:57:38 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
12:57:38 
12:57:38 2025-08-07T07:27:38.233Z: Running system process:
12:57:38   ยท Command: npm prefix
12:57:38   ยท Working directory: /home/ubuntu/jenkins/workspace/build-wishlist-shopify-app-snapshots
12:57:38 
12:57:38 2025-08-07T07:27:38.328Z: Obtaining the dependency manager in directory /home/ubuntu/jenkins/workspace/build-wishlist-shopify-app-snapshots...
12:57:38 2025-08-07T07:27:38.576Z: Request to https://monorail-edge.shopifysvc.com/v1/produce completed in 138 ms
12:57:38 With response headers:
12:57:38  - x-request-id: 6523676c-1b7b-4f52-b01f-4384838c7f6c
12:57:38     
12:57:38 2025-08-07T07:27:38.577Z: Analytics event sent: {
12:57:38   "command": "app deploy",
12:57:38   "time_start": 1754551641098,
12:57:38   "time_end": 1754551658226,
12:57:38   "total_time": 17128,
12:57:38   "success": false,
12:57:38   "cli_version": "3.83.1",
12:57:38   "ruby_version": "",
12:57:38   "node_version": "20.18.0",
12:57:38   "is_employee": false,
12:57:38   "uname": "linux amd64",
12:57:38   "env_ci": true,
12:57:38   "env_ci_platform": "unknown",
12:57:38   "env_plugin_installed_any_custom": false,
12:57:38   "env_plugin_installed_shopify": "[\"@shopify/cli\"]",
12:57:38   "env_shell": "bash",
12:57:38   "env_device_id": "f4736481c70769b51fd56adb23c3b67f60f73e78",
12:57:38   "env_cloud": "localhost",
12:57:38   "env_package_manager": "npm",
12:57:38   "env_is_global": false,
12:57:38   "env_auth_method": "partners_token",
12:57:38   "env_is_wsl": false,
12:57:38   "env_build_repository": "Shopify/cli",
12:57:38   "cmd_app_warning_api_key_deprecation_displayed": false,
12:57:38   "cmd_deploy_flag_message_used": false,
12:57:38   "cmd_deploy_flag_version_used": false,
12:57:38   "cmd_deploy_flag_source_url_used": false,
12:57:38   "cmd_app_all_configs_any": true,
12:57:38   "cmd_app_all_configs_clients": "{\"shopify.app.toml\":\"d0c644c922a6f3efdb26b132fb438e7f\"}",
12:57:38   "cmd_app_linked_config_used": true,
12:57:38   "cmd_app_linked_config_name": "shopify.app.toml",
12:57:38   "cmd_app_linked_config_git_tracked": true,
12:57:38   "cmd_app_linked_config_source": "cached",
12:57:38   "project_type": "node",
12:57:38   "app_extensions_any": true,
12:57:38   "app_extensions_breakdown": "{\"editor_extension_collection\":1,\"ui_extension\":3,\"flow_template\":1,\"web_pixel_extension\":1,\"theme\":1}",
12:57:38   "app_extensions_count": 7,
12:57:38   "app_extensions_custom_layout": false,
12:57:38   "app_extensions_function_any": false,
12:57:38   "app_extensions_function_count": 0,
12:57:38   "app_extensions_theme_any": true,
12:57:38   "app_extensions_theme_count": 1,
12:57:38   "app_extensions_ui_any": true,
12:57:38   "app_extensions_ui_count": 4,
12:57:38   "app_name_hash": "e50dae27fc1b0cc2c505c97c0166a773a642e038",
12:57:38   "app_path_hash": "4a390f4ce815a6e8e7028d184a34669ab310f3a8",
12:57:38   "app_scopes": "[\"read_content\",\"read_customer_events\",\"read_customers\",\"read_discounts\",\"read_inventory\",\"read_locales\",\"read_locations\",\"read_markets\",\"read_orders\",\"read_products\",\"read_script_tags\",\"read_shipping\",\"read_themes\",\"read_users\",\"unauthenticated_read_product_inventory\",\"unauthenticated_read_product_listings\",\"unauthenticated_read_product_pickup_locations\",\"write_content\",\"write_customers\",\"write_draft_orders\",\"write_pixels\",\"write_products\",\"write_script_tags\",\"write_themes\"]",
12:57:38   "app_web_backend_any": true,
12:57:38   "app_web_backend_count": 1,
12:57:38   "app_web_custom_layout": false,
12:57:38   "app_web_framework": "unknown",
12:57:38   "app_web_frontend_any": true,
12:57:38   "app_web_frontend_count": 1,
12:57:38   "env_package_manager_workspaces": false,
12:57:38   "partner_id": 408500,
12:57:38   "api_key": "****",
12:57:38   "cmd_app_reset_used": false,
12:57:38   "cmd_deploy_include_config_used": true,
12:57:38   "cmd_deploy_config_modules_breakdown": "[\"access\",\"access_scopes\",\"app_proxy\",\"application_url\",\"auth\",\"embedded\",\"handle\",\"name\",\"pos\",\"webhooks\"]",
12:57:38   "cmd_deploy_config_modules_updated": "[\"app_proxy\"]",
12:57:38   "cmd_all_timing_network_ms": 13508,
12:57:38   "cmd_all_timing_prompts_ms": 0,
12:57:38   "cmd_all_launcher": "npm",
12:57:38   "cmd_all_topic": "app",
12:57:38   "cmd_all_plugin": "@shopify/app",
12:57:38   "cmd_all_force": false,
12:57:38   "cmd_all_verbose": true,
12:57:38   "cmd_all_path_override": true,
12:57:38   "cmd_all_path_override_hash": "4a390f4ce815a6e8e7028d184a34669ab310f3a8",
12:57:38   "cmd_all_last_graphql_request_id": "64d9530a-af8c-477d-a8a6-202c0e4e17d5-1754551655",
12:57:38   "cmd_all_timing_active_ms": 3619,
12:57:38   "cmd_all_exit": "expected_error",
12:57:38   "user_id": "095f9b66-b3e3-b0e9-d767-4fe24354e46e98df179a",
12:57:38   "request_ids": [
12:57:38     "ae1e7d78-a287-4e79-879b-b5ba59529ea3-1754551641",
12:57:38     "7fa76fc1-f114-48d4-842f-ed9541502b37-1754551641",
12:57:38     "edb5bfd0-8710-4920-b547-773de95deb3c-1754551642",
12:57:38     "1a42f1b5-e9b8-468b-8a23-0c34171d997f-1754551642",
12:57:38     "9f318030-ff04-4630-acf4-cb2bf1e238b3-1754551642",
12:57:38     "fa5d54de-a5e5-4c2b-a617-f02e1aec85d5-1754551643",
12:57:38     "665af85b-fc3e-40eb-a697-b5cf9d343379-1754551648",
12:57:38     "7a31004b-8f46-43e6-aadc-b093bf40e103-1754551655",
12:57:38     "64d9530a-af8c-477d-a8a6-202c0e4e17d5-1754551655"
12:57:38   ],
12:57:38   "args": "-f --verbose",
12:57:38   "error_message": "Version couldn't be created.",
12:57:38   "app_name": "wishlist-shopify-app",
12:57:38   "env_plugin_installed_all": "[\"@shopify/cli\"]",
12:57:38   "metadata": "{\"extraPublic\":{},\"extraSensitive\":{}}"

Also @Alan_G I think this has to do more with the deprecation shopify did - allowing blocks to not have visible_if anymore
Wanted to see if we could get some time before its removed since its blocking our deployments

Hi @Alan_G ,

I prefer sharing logs privately, how can I DM you?
Also, I want to make things clear the visible_if is working good with the schema suggestion with vscode + build process and deployment is working.
The issue for me is that the visible_if prop doesnโ€™t seem to be working.

Thanks @Sakshi_Gupta for sharing your logs, really appreciated! @oribenez, DMing you right away here!

Iโ€™ll dig into this on my end and reach out internally to see if we can confirm expected behaviour or investigate this as a possible bug. Thanks again for your patience on this, both!

1 Like

Hi there @Alan_G, weโ€™re also running into this issue.
As @oribenez has already pointed out this problem specifically applies to App Embeds and is not observed in App Blocks.
The documentation suggests this should work. Specifically the page Configure theme app extensions is about both App Blocks and App Embeds. The โ€œsettingsโ€ in the schema, and specifically the visible_if, are documented here Settings.
Note that we are not using dynamic values, just a simple basic input type (radio).
Using the exact same settings in an App Block works as expected, however on an App Embed they donโ€™t.
Itโ€™s worth noting that settings for the App Block are handled in the panel on the right of the theme customizer, whereas the App Embed is handled on the left. Perhaps that means the implementation may be in a different component, perhaps not.

Hereโ€™s the schema Iโ€™m using:

    {
      "type": "radio",
      "id": "position",
      "label": "Position",
      "default": "top",
      "options": [
        {
          "label": "Top of the page",
          "value": "top"
        },
        {
          "label": "Under the header",
          "value": "under_header"
        },
        {
          "label": "Bottom of the page",
          "value": "bottom"
        },
        {
          "label": "Custom position",
          "value": "custom"
        }
      ]
    },
    {
      "type": "checkbox",
      "id": "is_sticky",
      "label": "Sticky on scroll",
      "default": true,
      "visible_if": "{{ block.settings.position == 'top' }}"
    },

Note that block.settings.position resolves correctly on an App Embed. But the implementation for visible_if seems to be missing.

Iโ€™m including three screenshots that show how this works on App Block, but not on App Embed with identical schemas.

  • Image 1: App Block - The user has not selected the first option (top), so the checkbox should not be displayed: WORKS :white_check_mark:
  • Image 2: App Block - The user has selected the first option (top), so the checkbox should be displayed: WORKS :white_check_mark:
  • Image 2: App Embed- The user has selected the first option (top), so the checkbox should be displayed: FAILS :cross_mark:



1 Like

I am open to closing this issue as well, as it seems to be a duplicate? Thank you @BartCoppens for your well defined and detailed issue reproduction. We look forward to a quick resolution where possible.

Hey @BartCoppens and @bryant_baird_dev thank you both for your reports here as well. Just wanted to confirm that I was able to speak with the product team on this and weโ€™re looking into this as a potential issue on our end. I donโ€™t have a specific turnaround time for a fix or what the fix would look like at the moment, but Iโ€™ll keep my eye on this for you all here and update you as soon as I have more info/next steps to share.

For your other thread @bryant_baird_dev , it does look like the same issue. I can close that out on my end for you so that we donโ€™t have any duplication, thanks for flagging that!

Iโ€™ll update you all as soon as I hear from the folks Iโ€™m working with internally on my end here, thanks again for your patience on this :slight_smile:

2 Likes

Hi folks :waving_hand: - just looping back here. Weโ€™ve done some further testing on our end and we are unable to replicate the issue at the moment. Hereโ€™s the flow we followed:

  • created an app embed with the schema that @BartCoppens shared
  • changing the position and applying sticky on scroll works conditionally like so:

If you folks are open to sharing a full minimal repro of your app embed code (either via a private GH repo or a Zip file), Iโ€™m more than happy to set up a DM if youโ€™re still seeing this pop up on your end so that we can investigate further together.

Let me know if I can clarify anything on our end here.

Thanks @Alan_G I confirm the bug now appears fixed on my end as well.

Hey @BartCoppens - glad to hear itโ€™s resolved. If you see it pop up again, just let me know here in the thread and Iโ€™d be more than happy to keep investigating.

Thank you @Alan_G, it is working great.

1 Like

Glad to hear as well @oribenez, thanks for confirming too :slight_smile: