Getting Runtime error “obj must be a list of dicts or a nested dict” using with_items

I need to search a string “TicketID” in .db files under a directory. If found my playbook should fail.

Below is my playbook for the same, however I’m getting runtime error “using with_items”

Output:

TASK [Search for Number] *************************************************************************************************************
fatal: [45.72.65.99]: FAILED! => {“msg”: “obj must be a list of dicts or a nested dict”}

Below is my ansible playbook’s task:

`

  • name: find multiple .db files under a given location
    find:
    paths: “{{ BASEPATH }}”
    patterns: “*.db”
    recurse: yes
    register: files_matched

  • name: "Search for Number
    command: “grep -i {{ TicketID }} {{ item.path }}”
    register: command_result
    failed_when: command_result.rc == 0
    with_items:

  • “{{ files_matched.files }}”
    `

I tried using loop instead of with_items as below but that too did not work

`

  • name: "Search for Number
    command: “grep -i {{ TicketID }} {{ item.1.path }}”
    register: command_result
    failed_when: command_result.rc == 0
    loop: “{{ files_matched.results | subelements(‘files’) }}”
    `

Output:

TASK [Search for Number] *************************************************************************************************************
fatal: [45.72.65.99]: FAILED! => {“msg”: “obj must be a list of dicts or a nested dict”}

I also tried using json_query like below but I still get error:

`

  • name: “Search for Number”
    command: “grep -i {{ TicketID }} {{ item }}”
    register: command_result
    failed_when: command_result.rc == 0
    loop: “{{ files_matched.files|json_query(‘.path’) }}”
    `

Output:

TASK [Search for Number] *************************************************************************************************************
fatal: [45.72.65.99]: FAILED! => {“msg”: “Invalid data passed to ‘loop’, it requires a list, got this instead: . 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.”}

I would like to understand why is this playbook failing and how I can fix it.

you have opened double quotes and not closed it.

  • name: "Search for Number