Cannot use render tag in app snippets

Since yesterday, running shopify app dev and shopify app deploy in a theme app extension results in Error while updating drafts: [snippets/snippet-1.liquid] Liquid syntax error: Cannot use render tag in app snippets.
Screenshot 2025-03-11 112856

This occurs on code that was working fine in previous deployments and has not changed since. The code in snippet-1.liquid used to render snippet-2.liquid as such:

{% liquid
  capture my_logic
    capture my_content
      render 'snippet-2', product: my_product
    endcapture
endcapture %}

Perhaps related to [FIXED - may require your action] CLI dev/deployment issues?

I have to ask…why are you using a capture inside a capture?

1 Like

Gotta catch em all -

1 Like

If you use this in a simpler context in a theme app extension, is it still not working?

Yes, here’s a minimally reproducible example:

blocks/block-1.liquid

{% render 'snippet-1' %}

{% schema %}
{
  "name": "Block 1",
  "target": "section",
  "settings": []
}
{% endschema %}

snippets/snippet-1.liquid

{% liquid echo "This is snippet-1" %}
{% render 'snippet-2' %}

snippets/snippet-2.liquid

{% liquid echo "This is snippet-2" %}

In the example above, I’m getting Error while updating drafts: [snippets/snippet-1.liquid] Liquid syntax error: Cannot use render tag in app snippets.

However, if I remove the line {% render 'snippet-2' %}, the draft for the extension is correctly updated.


Re. the nested capture, there was some more code that I didn’t paste here which makes use of only the inner capture.

Hi again,

So from digging into this, it does seem that it’s a known limitation that theme app extensions don’t allow nested rendering of snippets - was this possible for you previously?

Hi, yes, we’d had this in production since at least 2024-10-20.