diff --git a/changelogs/fragments/better_task_error.yml b/changelogs/fragments/better_task_error.yml new file mode 100644 index 00000000000000..4ab8b109e12ada --- /dev/null +++ b/changelogs/fragments/better_task_error.yml @@ -0,0 +1,2 @@ +bugfixes: + - display underlying error when reporting an invalid ``tasks:`` block. diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index 892c7ec2f50026..2eb0c743750512 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -22,6 +22,7 @@ from ansible import constants as C from ansible import context from ansible.errors import AnsibleParserError, AnsibleAssertionError +from ansible.module_utils._text import to_native from ansible.module_utils.six import string_types from ansible.playbook.attribute import FieldAttribute from ansible.playbook.base import Base @@ -145,7 +146,7 @@ def _load_tasks(self, attr, ds): try: return load_list_of_blocks(ds=ds, play=self, variable_manager=self._variable_manager, loader=self._loader) except AssertionError as e: - raise AnsibleParserError("A malformed block was encountered while loading tasks", obj=self._ds, orig_exc=e) + raise AnsibleParserError("A malformed block was encountered while loading tasks: %s" % to_native(e), obj=self._ds, orig_exc=e) def _load_pre_tasks(self, attr, ds): '''