diff --git a/src/sos/task_executor.py b/src/sos/task_executor.py
index <HASH>..<HASH> 100644
--- a/src/sos/task_executor.py
+++ b/src/sos/task_executor.py
@@ -287,7 +287,10 @@ def _execute_sub_tasks(task_id, params, sig_content, verbosity, runmode, sigmode
             all_res['ret_code'] = 1
             continue
         all_res['ret_code'] += x['ret_code']
-        all_res['output'].update(x['output'])
+        try:
+            all_res['output'].extend(x['output'], keep_groups=True)
+        except Exception as e:
+            env.logger.warning(f'Failed to extend output {all_res['output']} with {x['output']}')
         all_res['subtasks'][tid[0]] = x
         all_res['shared'].update(x['shared'])
         # does not care if one or all subtasks are executed or skipped.
Fix a bug with updating results of super-task