mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-12-18 18:43:05 +08:00
include execution error in both responses
This commit is contained in:
parent
048c413adc
commit
2e0b26bdf3
@ -59,6 +59,7 @@ def normalize_queue_item(item, status):
|
||||
'create_time': create_time,
|
||||
'execution_time': None,
|
||||
'error_message': None,
|
||||
'execution_error': None,
|
||||
'outputs_count': 0,
|
||||
'preview_output': None,
|
||||
'workflow_id': None,
|
||||
@ -84,6 +85,7 @@ def normalize_history_item(prompt_id, history_item, include_outputs=False):
|
||||
outputs_count, preview_output = get_outputs_summary(outputs)
|
||||
|
||||
error_message = None
|
||||
execution_error = None
|
||||
if status == JobStatus.ERROR and status_info:
|
||||
messages = status_info.get('messages', [])
|
||||
for entry in messages:
|
||||
@ -91,6 +93,7 @@ def normalize_history_item(prompt_id, history_item, include_outputs=False):
|
||||
detail = entry[1]
|
||||
if isinstance(detail, dict):
|
||||
error_message = str(detail.get('exception_message', ''))
|
||||
execution_error = detail
|
||||
break
|
||||
|
||||
execution_time = history_item.get('execution_time')
|
||||
@ -112,6 +115,7 @@ def normalize_history_item(prompt_id, history_item, include_outputs=False):
|
||||
job['prompt'] = prompt
|
||||
job['extra_data'] = extra_data
|
||||
job['outputs_to_execute'] = outputs_to_execute
|
||||
job['execution_error'] = execution_error
|
||||
|
||||
return job
|
||||
|
||||
|
||||
@ -283,6 +283,13 @@ class TestNormalizeHistoryItem:
|
||||
|
||||
def test_error_job(self):
|
||||
"""Error history item should have error status and message."""
|
||||
error_detail = {
|
||||
'node_id': '5',
|
||||
'node_type': 'KSampler',
|
||||
'exception_message': 'CUDA out of memory',
|
||||
'exception_type': 'RuntimeError',
|
||||
'traceback': ['Traceback...', 'RuntimeError: CUDA out of memory'],
|
||||
}
|
||||
history_item = {
|
||||
'prompt': (
|
||||
5,
|
||||
@ -295,16 +302,24 @@ class TestNormalizeHistoryItem:
|
||||
'status_str': 'error',
|
||||
'completed': False,
|
||||
'messages': [
|
||||
('execution_error', {'exception_message': 'Node failed: OutOfMemory', 'node_id': '5'})
|
||||
('execution_error', error_detail)
|
||||
]
|
||||
},
|
||||
'outputs': {},
|
||||
'execution_time': 1.0,
|
||||
}
|
||||
job = normalize_history_item('prompt-789', history_item)
|
||||
|
||||
# List view - no execution_error
|
||||
job = normalize_history_item('prompt-789', history_item)
|
||||
assert job['status'] == 'error'
|
||||
assert job['error_message'] == 'Node failed: OutOfMemory'
|
||||
assert job['error_message'] == 'CUDA out of memory'
|
||||
assert 'execution_error' not in job
|
||||
|
||||
# Detail view - includes execution_error
|
||||
job_detail = normalize_history_item('prompt-789', history_item, include_outputs=True)
|
||||
assert job_detail['execution_error'] == error_detail
|
||||
assert job_detail['execution_error']['node_id'] == '5'
|
||||
assert job_detail['execution_error']['node_type'] == 'KSampler'
|
||||
|
||||
def test_include_outputs(self):
|
||||
"""When include_outputs=True, should include full output data."""
|
||||
|
||||
Loading…
Reference in New Issue
Block a user