{"record":{"id":"33935a444fcbf468","repo":"iflytek/astron-agent","slug":"plugin-node-execution-error","errorCode":"PLUGIN_NODE_EXECUTION_ERROR","errorMessage":"plugin not found: {self.operationId}","messagePattern":"plugin not found: (.+?)","errorType":"error_code","errorClass":"CustomException","httpStatus":null,"severity":"error","filePath":"core/workflow/engine/nodes/plugin_tool/plugin_node.py","lineNumber":180,"sourceCode":"                            res[output_key] = schema_type_default_value[var_type]\n                        else:\n                            await span.add_info_events_async(\n                                {\n                                    \"result type\": f\"{output_key}'s type is {type(res[output_key])}\"\n                                }\n                            )\n                            # Validate output type and provide default if type mismatch\n                            if (\n                                type(res[output_key])\n                                not in schema_type_map_python[var_type]\n                            ):\n                                res[output_key] = schema_type_default_value[var_type]\n                        outputs.update({output_key: res[output_key]})\n                    break\n            else:\n                # Handle case where plugin operation is not found\n                span.add_error_event(f\"Error : plugin not found: {self.operationId}\")\n                raise CustomException(\n                    CodeEnum.PLUGIN_NODE_EXECUTION_ERROR,\n                    err_msg=f\"plugin not found: {self.operationId}\",\n                )\n\n            # Return successful execution result\n            return NodeRunResult(\n                status=WorkflowNodeExecutionStatus.SUCCEEDED,\n                inputs=inputs,\n                outputs=outputs,\n                node_id=self.node_id,\n                node_type=self.node_type,\n                alias_name=self.alias_name,\n            )\n        except CustomException as e:\n            span.record_exception(e)\n            return NodeRunResult(\n                status=WorkflowNodeExecutionStatus.FAILED,\n                error=e,","sourceCodeStart":162,"sourceCodeEnd":198,"githubUrl":"https://github.com/iflytek/astron-agent/blob/5e758547a83371a5a4b29dadf4ac03e8dd527635/core/workflow/engine/nodes/plugin_tool/plugin_node.py#L162-L198","documentation":"The plugin node looks up its configured operationId among the resolved plugin schemas; when no matching operation is found it raises PLUGIN_NODE_EXECUTION_ERROR with 'plugin not found'. The node cannot execute because the requested plugin operation does not exist in the registered plugin set.","triggerScenarios":"execute() runs for a plugin node whose operationId is absent from the loaded plugin schema list — the plugin/tool was uninstalled, renamed, the id is mistyped, or the plugin list failed to load into the node's schema set.","commonSituations":"A workflow referencing a plugin that was later removed from the marketplace, copying a workflow between environments where the plugin isn't installed, or a stale cached plugin schema after an upgrade.","solutions":["Verify the operationId in the node config matches an installed plugin operation exactly","Install/enable the missing plugin in this environment, or update the node to point at an existing operation","Refresh the plugin schema cache/redeploy so the plugin list is current, then re-run"],"exampleFix":"// before\nnode_config = {\"plugin_id\": \"weather\", \"operationId\": \"get_forecast_v1\"}  // removed\n// after\nnode_config = {\"plugin_id\": \"weather\", \"operationId\": \"get_forecast_v2\"}  // current operation","handlingStrategy":"validation","validationCode":"ops = {op.operationId for op in loaded_plugin_schemas}\nassert node_config[\"operationId\"] in ops, \"plugin operation missing\"","typeGuard":null,"tryCatchPattern":"try:\n    result = await plugin_node.async_execute(...)\nexcept CustomException as e:\n    if \"plugin not found\" in e.err_msg:\n        install_missing_plugin(e.err_msg.split(\":\")[-1].strip())","preventionTips":["Verify plugin availability in every target environment before deploying workflows","Avoid hardcoding operationIds; pick them from the live plugin registry","Refresh plugin caches after marketplace installs/uninstalls"],"tags":["plugin","configuration","not-found"],"backgroundTag":"entity-not-found","analyzedSha":"5e758547a83371a5a4b29dadf4ac03e8dd527635","analyzedAt":"2026-09-12T08:03:51.356Z","contentChangedAt":"2026-09-12T08:03:51.356Z","schemaVersion":2},"datasetVersion":"2026-09-19T12:17:13.211Z"}