@@ -1648,7 +1648,7 @@ func replaceRelatedWorkflowOrExternalResourceInWorkflowNodes(nodes []*vo.Node, r
16481648 for _ , node := range nodes {
16491649 switch entity .IDStrToNodeType (node .Type ) {
16501650 case entity .NodeTypeSubWorkflow :
1651- if ! hasWorkflowRelated {
1651+ if ! hasWorkflowRelated || node . Data . Inputs . SubWorkflow == nil {
16521652 continue
16531653 }
16541654 workflowID , err := strconv .ParseInt (node .Data .Inputs .WorkflowID , 10 , 64 )
@@ -1660,7 +1660,7 @@ func replaceRelatedWorkflowOrExternalResourceInWorkflowNodes(nodes []*vo.Node, r
16601660 node .Data .Inputs .WorkflowVersion = wf .Version
16611661 }
16621662 case entity .NodeTypePlugin :
1663- if ! hasPluginRelated {
1663+ if ! hasPluginRelated || node . Data . Inputs . PluginAPIParam == nil {
16641664 continue
16651665 }
16661666 apiParams := slices .ToMap (node .Data .Inputs .APIParams , func (e * vo.Param ) (string , * vo.Param ) {
@@ -1703,6 +1703,9 @@ func replaceRelatedWorkflowOrExternalResourceInWorkflowNodes(nodes []*vo.Node, r
17031703 }
17041704
17051705 case entity .NodeTypeLLM :
1706+ if node .Data .Inputs .LLM == nil {
1707+ continue
1708+ }
17061709 if hasWorkflowRelated && node .Data .Inputs .FCParam != nil && node .Data .Inputs .FCParam .WorkflowFCParam != nil {
17071710 for idx := range node .Data .Inputs .FCParam .WorkflowFCParam .WorkflowList {
17081711 wf := node .Data .Inputs .FCParam .WorkflowFCParam .WorkflowList [idx ]
@@ -1749,7 +1752,7 @@ func replaceRelatedWorkflowOrExternalResourceInWorkflowNodes(nodes []*vo.Node, r
17491752 }
17501753
17511754 case entity .NodeTypeKnowledgeIndexer , entity .NodeTypeKnowledgeRetriever :
1752- if ! hasKnowledgeRelated {
1755+ if ! hasKnowledgeRelated || node . Data . Inputs . Knowledge == nil {
17531756 continue
17541757 }
17551758 datasetListInfoParam := node .Data .Inputs .DatasetParam [0 ]
@@ -1765,7 +1768,7 @@ func replaceRelatedWorkflowOrExternalResourceInWorkflowNodes(nodes []*vo.Node, r
17651768 }
17661769
17671770 case entity .NodeTypeDatabaseCustomSQL , entity .NodeTypeDatabaseQuery , entity .NodeTypeDatabaseInsert , entity .NodeTypeDatabaseDelete , entity .NodeTypeDatabaseUpdate :
1768- if ! hasDatabaseRelated {
1771+ if ! hasDatabaseRelated || node . Data . Inputs . DatabaseNode == nil {
17691772 continue
17701773 }
17711774 dsList := node .Data .Inputs .DatabaseInfoList
0 commit comments