Skip Ansible Task wenn Variable nicht definiert

Ich habe die folgende Aufgabe in einem Playbook:

- name: task xyz  
  copy:  
    src="{{ item }}"  
    dest="/tmp/{{ item }}"  
  with_items: "{{ y.z }}"  
  when: y.z is defined  

y.z ist nicht definiert, daher erwarte ich, dass die Aufgabe übersprungen wird. Stattdessen erhalte ich:

FAILED! => {"failed": true, "msg": "'dict object' has no attribute 'z'"

Ich habe gefunden:Wie führe ich eine Aufgabe aus, wenn die Variable in ansible undefiniert ist? aber anscheinend habe ich genau das umgesetzt. Was mache ich hier falsch?