fix: meaningless error messages

This commit is contained in:
Yeuoly 2025-10-18 16:27:12 +08:00
parent 4ceae655bd
commit 5edfbd5305
4 changed files with 21 additions and 15 deletions

View File

@ -980,10 +980,8 @@ class DraftWorkflowTriggerRunApi(Resource):
)
except InvokeRateLimitError as ex:
raise InvokeRateLimitHttpError(ex.description)
except ValueError as e:
raise e
except PluginInvokeError as e:
raise e
raise ValueError(e.to_user_friendly_error())
except Exception as e:
logger.exception("Error polling trigger debug event")
raise e
@ -1040,11 +1038,8 @@ class DraftWorkflowTriggerNodeApi(Resource):
node_id=node_id,
)
event = poller.poll()
except ValueError as e:
logger.exception("Error polling trigger debug event")
raise e
except PluginInvokeError as e:
raise e
raise ValueError(e.to_user_friendly_error())
except Exception as e:
logger.exception("Error polling trigger debug event")
raise e
@ -1119,10 +1114,8 @@ class DraftWorkflowTriggerRunAllApi(Resource):
user_id=current_user.id,
node_ids=node_ids,
)
except ValueError as e:
raise e
except PluginInvokeError as e:
raise e
raise ValueError(e.to_user_friendly_error())
except Exception as e:
logger.exception("Error polling trigger debug event")
raise e

View File

@ -58,6 +58,20 @@ class PluginInvokeError(PluginDaemonClientSideError):
except Exception:
return self.description
def to_user_friendly_error(self, plugin_name: str = "currently running plugin") -> str:
"""
Convert the error to a user-friendly error message.
:param plugin_name: The name of the plugin that caused the error.
:return: A user-friendly error message.
"""
return (
f"An error occurred in the {plugin_name}, "
f"please contact the author of {plugin_name} for help, "
f"error type: {self.get_error_type()}, "
f"error details: {self.get_error_message()}"
)
class PluginUniqueIdentifierError(PluginDaemonClientSideError):
description: str = "Unique Identifier Error"

View File

@ -190,7 +190,9 @@ class TriggerManager:
if e.get_error_type() == "EventIgnoreError":
return TriggerInvokeEventResponse(variables={}, cancelled=True)
logger.exception("Failed to invoke trigger event")
raise TriggerPluginInvokeError(description=e.get_error_message()) from e
raise TriggerPluginInvokeError(
description=e.to_user_friendly_error(plugin_name=provider.entity.identity.name)
) from e
@classmethod
def subscribe_trigger(

View File

@ -160,10 +160,7 @@ class ToolNode(Node):
status=WorkflowNodeExecutionStatus.FAILED,
inputs=parameters_for_log,
metadata={WorkflowNodeExecutionMetadataKey.TOOL_INFO: tool_info},
error="An error occurred in the plugin, "
f"please contact the author of {node_data.provider_name} for help, "
f"error type: {e.get_error_type()}, "
f"error details: {e.get_error_message()}",
error=e.to_user_friendly_error(plugin_name=node_data.provider_name),
error_type=type(e).__name__,
)
)