# The debug action bypasses standard task arg templating. # Failures during templating occur when running the debug action. - name: Ensure debug templating failures are handled properly debug: msg: "{{ 5 / 0 | int }}" ignore_errors: true register: result - debug: var: result - assert: that: - result is failed - "'division by zero' in result.msg" - result.exception is defined - name: Ensure debug templating failures do not stop later loop iterations debug: msg: "{{ 5 / item }}" ignore_errors: true register: result loop: [0, 0, 1] - assert: that: - result.results[0] is failed - "'division by zero' in result.results[0].msg" - result.results[0].exception is defined - result.results[0].item == 0 - result.results[1] is failed - "'division by zero' in result.results[1].msg" - result.results[1].exception is defined - result.results[1].item == 0 - result.results[2] is success - result.results[2].msg == 5.0 - result.results[2].exception is undefined - result.results[2].item == 1 - name: var templating exception debug: var: 5/0 ignore_errors: true register: result - assert: that: - result is failed - '"division by zero" in result.msg' - name: undefined warnings in `var` template debug: var: something_undefined register: result - assert: that: - result is success - result.warnings | length == 1 - result.warnings[0] is contains "something_undefined" - name: composite template with embedded undefined debug: msg: mixed composite {{ "valid template" }} {{ bogus_var }} {{ another_bogus_var }} {{ "another valid template" }} ignore_errors: true register: result - assert: that: - result is failed - result.msg | regex_search("'bogus_var' is undefined") is not none