diff --git a/comfy_execution/jobs.py b/comfy_execution/jobs.py index a5a6b53d4..d65936dbd 100644 --- a/comfy_execution/jobs.py +++ b/comfy_execution/jobs.py @@ -86,8 +86,12 @@ def normalize_history_item(prompt_id, history_item, include_outputs=False): error_message = None if status == JobStatus.ERROR and status_info: messages = status_info.get('messages', []) - if messages: - error_message = messages[0] if isinstance(messages[0], str) else str(messages[0]) + for entry in messages: + if isinstance(entry, (list, tuple)) and len(entry) >= 2 and entry[0] == 'execution_error': + detail = entry[1] + if isinstance(detail, dict): + error_message = str(detail.get('exception_message', '')) + break execution_time = history_item.get('execution_time') diff --git a/tests/execution/test_jobs.py b/tests/execution/test_jobs.py index 8c0a6ce06..9ffdbb3fb 100644 --- a/tests/execution/test_jobs.py +++ b/tests/execution/test_jobs.py @@ -294,7 +294,9 @@ class TestNormalizeHistoryItem: 'status': { 'status_str': 'error', 'completed': False, - 'messages': ['Node failed: OutOfMemory'] + 'messages': [ + ('execution_error', {'exception_message': 'Node failed: OutOfMemory', 'node_id': '5'}) + ] }, 'outputs': {}, 'execution_time': 1.0,