From 81a8c4211570fd1a5d1a2d9144db4beede2c9e1a Mon Sep 17 00:00:00 2001
From: Martin Krizek <martin.krizek@gmail.com>
Date: Mon, 9 Apr 2018 11:08:04 +0200
Subject: [PATCH] Give hint when lookup fails on one element list (#38406)

* Give hint when lookup fails on one element list

* Mention wantlist first

* Fix pep8...
---
 lib/ansible/executor/task_executor.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/ansible/executor/task_executor.py b/lib/ansible/executor/task_executor.py
index 8dc17f76b88..d6e7bbdf546 100644
--- a/lib/ansible/executor/task_executor.py
+++ b/lib/ansible/executor/task_executor.py
@@ -233,7 +233,11 @@ class TaskExecutor:
         elif self._task.loop:
             items = templar.template(self._task.loop)
             if not isinstance(items, list):
-                raise AnsibleError("Invalid data passed to 'loop' it requires a list, got this instead: %s" % items)
+                raise AnsibleError(
+                    "Invalid data passed to 'loop', it requires a list, got this instead: %s."
+                    " Hint: If you passed a list/dict of just one element,"
+                    " try adding wantlist=True to your lookup invocation or use q/query instead of lookup." % items
+                )
 
         # now we restore any old job variables that may have been modified,
         # and delete them if they were in the play context vars but not in