fix: improve error message when node type is missing

- Change error type from 'invalid_prompt' to 'missing_node_type' for frontend detection
- Add extra_info with node_id, class_type, and node_title (from _meta.title)
- Improve user-facing message: 'Node X not found. The custom node may not be installed.'

Fixes COM-12528

Amp-Thread-ID: https://ampcode.com/threads/T-019c0df1-aa57-72e0-8193-46aa24b5a327
Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
bymyself 2026-01-30 13:40:04 -08:00
parent 3aace5c8dc
commit be7bf497d6

View File

@ -1011,11 +1011,17 @@ async def validate_prompt(prompt_id, prompt, partial_execution_list: Union[list[
class_type = prompt[x]['class_type']
class_ = nodes.NODE_CLASS_MAPPINGS.get(class_type, None)
if class_ is None:
node_data = prompt[x]
node_title = node_data.get('_meta', {}).get('title', class_type)
error = {
"type": "invalid_prompt",
"message": f"Cannot execute because node {class_type} does not exist.",
"type": "missing_node_type",
"message": f"Node '{node_title}' not found. The custom node may not be installed.",
"details": f"Node ID '#{x}'",
"extra_info": {}
"extra_info": {
"node_id": x,
"class_type": class_type,
"node_title": node_title
}
}
return (False, error, [], {})