为什么我的变量存在于块中而不存在于另一个块中?

I have a template with the variable 'category'.

At some point I send this variable to an embedded template like so :

{% embed "AtgpTrackerBundle:Ticket:/_list.html.twig" with {"table": table, "category": category} %}

This _list template extends from a defaultTable template :

{% extends "AtgpTrackerBundle::Table/_defaultTable.html.twig" %}

which features some blocks :

<thead>
    {% block tableHead %}
        <tr>
            //some code
        </tr>
    {% endblock tableHead %}
</thead>    
<tbody id="{{ table.bodyId }}">
    {% block tableBody %}
        //some code
    {% endblock tableBody %}
</tbody>

So, In the _list template, I overwrite some blocks, using the 'category' variable.

Everything works fine when I use the category in the tableHead block. When I use it in tableBody, I have the "variable category doesn't exist" exception.

What is triggering me, is that when i try to dump the category in the tableBody block, it actually shows ! But I still have the error, pointing me the line where I wrote the dump.

EDIT to make my question clearer : For instance if I try to overwrite the blocks above like that :

{% block tableHead %}
    {{dump(category)}}
    {{category}}
{% endblock %}

{% block tableBody %}
    {{dump(category)}}
    {{category}}  
{% endblock %}

Both dump work fine, but the second one sends an exception "variable category doesn't exist" and the line after is not being processed. I seems like I just can't use the category in the tableBody block.

I can't figure out how to explain this behaviour, which seems really strange to me...