TASK: [set_fact roles="['dddd', 'eeeew', 'pffff', 'sssss']"] ************
ok: [master]
TASK: [set_fact roles="{{ roles + ['xxxx'] }}"] *******************************
fatal: [master] => Failed to template roles="{{ roles + ['xxxx'] }}": an unexpected type error occurred. Error was coercing to Unicode: need string or buffer, list found
The first set_fact assign a string to roles and not an array as expected ...