diff --git a/src/main/java/eu/hbp/mip/controllers/GalaxyAPI.java b/src/main/java/eu/hbp/mip/controllers/GalaxyAPI.java
index ba6dcf7d386992303955c4fd5019f7345998eb5a..ad9043856e5c9e916f8d6140b04551a7313ee562 100644
--- a/src/main/java/eu/hbp/mip/controllers/GalaxyAPI.java
+++ b/src/main/java/eu/hbp/mip/controllers/GalaxyAPI.java
@@ -6,10 +6,7 @@ import com.github.jmchilton.blend4j.galaxy.WorkflowsClient;
 import com.github.jmchilton.blend4j.galaxy.beans.Workflow;
 import com.github.jmchilton.blend4j.galaxy.beans.WorkflowDetails;
 import com.github.jmchilton.blend4j.galaxy.beans.WorkflowInputDefinition;
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
+import com.google.gson.*;
 import eu.hbp.mip.controllers.retrofit.RetroFitGalaxyClients;
 import eu.hbp.mip.controllers.retrofit.RetrofitClientInstance;
 import eu.hbp.mip.dto.ErrorResponse;
@@ -461,12 +458,44 @@ class GalaxyAPI {
         logger.info(LogHelper.logUser(userDetails) + "Get error message of workflow called");
 
         RetroFitGalaxyClients service = RetrofitClientInstance.getRetrofitInstance().create(RetroFitGalaxyClients.class);
-        Call<Object> call = service.getErrorMessageOfWorkflowFromGalaxy(id,apiKey);
+        Call<Object> call = service.getWorkflowStatusFromGalaxy(id,apiKey);
+        String errorState = null;
+        try {
+            Response<Object> response = call.execute();
+            if(response.code() >= 400){
+                logger.error(LogHelper.logUser(userDetails) + "Resonse code: " + response.code() + "" + " with body: " + response.errorBody().string());
+                return ResponseEntity.badRequest().build();
+            }
+            JsonParser parser = new JsonParser();
+            String jsonString = new Gson().toJson(response.body());
+            JsonElement jsonElement = parser.parse(jsonString);
+            JsonObject rootObject = jsonElement.getAsJsonObject();
+            String state = rootObject.get("state").getAsString();
+            if(state.equals("error")){
+                JsonArray arrayOfErrors = rootObject.get("state_ids").getAsJsonObject().get("error").getAsJsonArray();
+                errorState = arrayOfErrors.get(0).getAsString();
+            }else if(state.equals("running")){
+                return ResponseEntity.ok(new StringDtoResponse("Still running. No errors yet"));
+            }else if(state.equals("ok")){
+                return ResponseEntity.ok(new StringDtoResponse("Completed. No errors "));
+            }else{
+                logger.warn("Unknown state of the workflow.");
+                return ResponseEntity.ok(new StringDtoResponse("Unknown state. No errors"));
+            }
+
+            logger.info(LogHelper.logUser(userDetails) + jsonString);
+
+            logger.info(LogHelper.logUser(userDetails) + "----" + response.body() + "----" + response.code());
+        } catch (IOException e) {
+            logger.error(LogHelper.logUser(userDetails) + "Cannot make the call to Galaxy API", e);
+        }
+
+        Call<Object> callError = service.getErrorMessageOfWorkflowFromGalaxy(errorState,apiKey);
 
         String fullError = null;
         String returnError = null;
         try {
-            Response<Object> response = call.execute();
+            Response<Object> response = callError.execute();
             if(response.code() >= 400){
                 logger.error(LogHelper.logUser(userDetails) + "Resonse code: " + response.code() + "" + " with body: " + response.errorBody().string());
                 return ResponseEntity.badRequest().build();
@@ -481,6 +510,7 @@ class GalaxyAPI {
             String specError = arrOfStr[arrOfStr.length-1];
             returnError = specError.substring(1);
 
+            System.out.println(fullError);
             logger.info(LogHelper.logUser(userDetails) + "----" + response.body() + "----" + response.code());
         } catch (IOException e) {
             logger.error(LogHelper.logUser(userDetails) + "Cannot make the call to Galaxy API", e);