# setting vars: on a block:

**URL:** <https://forum.ansible.com/t/setting-vars-on-a-block/18830>\
**Category:** Ansible Developer\
**Created:** [July 23, 2015, 8:53am UTC](https://forum.ansible.com/t/setting-vars-on-a-block/18830 "2015-07-23T08:53:09Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Abhijit\_Menon-Sen1](https://avatars.discourse-cdn.com/v4/letter/a/8e7dd6/32.png) [@Abhijit\_Menon-Sen1](https://forum.ansible.com/u/Abhijit_Menon-Sen1)\
**Post date:** [July 23, 2015, 8:53am UTC](https://forum.ansible.com/t/setting-vars-on-a-block/18830/1 "2015-07-23T08:53:09Z")

</div>

Hi.

I tried out blocks in devel today, and found a small oddity.

&nbsp;&nbsp;&nbsp;&nbsp;- block:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- debug: var=x  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- debug: var=y  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vars:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x: 23  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y: 42

The above works as expected, but:

&nbsp;&nbsp;&nbsp;&nbsp;- block:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- debug: var=x  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- debug: var=y  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vars:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- x: 23  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- y: 42

…results in:

&nbsp;&nbsp;&nbsp;&nbsp;[ERROR]: Unexpected Exception: dictionary update sequence element #0 has length 1; 2 is required

The latter is what I tried first, because that's how setting vars on a  
play works, but it looks like vars are handled differently for a block.  
This may be intended behaviour (it's not documented though), but at the  
very least I think the error should be handled more gracefully.

-- Abhijit

---

<div class="post-metadata">

**Author:** ![Abhijit\_Menon-Sen1](https://avatars.discourse-cdn.com/v4/letter/a/8e7dd6/32.png) [@Abhijit\_Menon-Sen1](https://forum.ansible.com/u/Abhijit_Menon-Sen1)\
**Post date:** [July 23, 2015, 9:02am UTC](https://forum.ansible.com/t/setting-vars-on-a-block/18830/2 "2015-07-23T09:02:17Z")

</div>

While we're at it, is it intended that:

&nbsp;&nbsp;&nbsp;&nbsp;- block:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- a  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- bunch of  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- tasks  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when: some condition

Shows each of the block-ed tasks being skipped individually when the  
condition evaluates to false? (That's what it does on devel now, and  
somehow I had the impression that it was meant to be different.)

-- Abhijit
