diff --git a/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java b/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java index be100fbce..80f8f8a2d 100644 --- a/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java +++ b/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java @@ -111,7 +111,6 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener onSearchGlobalContext(response, listener, request.getMaxWorkflows()), - exception -> listener.onFailure(exception) - ) - ); + client.search(searchRequest, ActionListener.wrap(response -> { + if (!onSearchGlobalContext(response, listener, request.getMaxWorkflows())) { + logger.error("Failed to save use case template"); + return; + } + }, exception -> listener.onFailure(exception))); // Create new global context and state index entries flowFrameworkIndicesHandler.putTemplateToGlobalContext(templateWithUser, ActionListener.wrap(globalContextResponse -> { @@ -195,12 +193,15 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener= maxWorkflow) { String errorMessage = "Maximum workflows limit reached " + maxWorkflow; logger.error(errorMessage); - listener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.BAD_REQUEST)); + FlowFrameworkException ffe = new FlowFrameworkException(errorMessage, RestStatus.BAD_REQUEST); + listener.onFailure(ffe); + return false; } + return true; } private void validateWorkflows(Template template) throws Exception {