diff --git a/src/main/java/eu/hbp/mip/models/DTOs/ExperimentDTO.java b/src/main/java/eu/hbp/mip/models/DTOs/ExperimentDTO.java
index 0dd28c1d6c4fde45164d9077aa5c9be3c90f57fb..378bb5126c27b68a138dc5be07bec1c0b13f8145 100644
--- a/src/main/java/eu/hbp/mip/models/DTOs/ExperimentDTO.java
+++ b/src/main/java/eu/hbp/mip/models/DTOs/ExperimentDTO.java
@@ -18,7 +18,7 @@ public class ExperimentDTO {
 
     private UUID uuid;
     private String name;
-    private String createdBy;
+    private UserDTO createdBy;
     private Date created;
     private Date updated;
     private Date finished;
@@ -41,7 +41,7 @@ public class ExperimentDTO {
         this.created = experimentDAO.getCreated();
         this.updated = experimentDAO.getUpdated();
         this.finished = experimentDAO.getFinished();
-        this.createdBy = experimentDAO.getCreatedBy().getUsername();
+        this.createdBy = new UserDTO(experimentDAO.getCreatedBy());
         this.name = experimentDAO.getName();
         if(includeResult){
             this.result = JsonConverters.convertJsonStringToObject(String.valueOf(experimentDAO.getResult()),  new ArrayList<>().getClass());
diff --git a/src/main/java/eu/hbp/mip/models/DTOs/UserDTO.java b/src/main/java/eu/hbp/mip/models/DTOs/UserDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..7550807246c05be32e70f67c544124aa96f5d292
--- /dev/null
+++ b/src/main/java/eu/hbp/mip/models/DTOs/UserDTO.java
@@ -0,0 +1,31 @@
+package eu.hbp.mip.models.DTOs;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.google.gson.annotations.SerializedName;
+import eu.hbp.mip.models.DAOs.ExperimentDAO;
+import eu.hbp.mip.models.DAOs.UserDAO;
+import eu.hbp.mip.utils.JsonConverters;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class UserDTO {
+
+    @SerializedName("username")
+    private String username;
+
+    @SerializedName("fullname")
+    private String fullname;
+
+    public UserDTO(){
+
+    }
+
+    public UserDTO(UserDAO userdao) {
+        this.username = userdao.getUsername();
+        this.fullname = userdao.getFullname();
+    }
+}
+
diff --git a/src/main/resources/db/migration/V7_1__NewExperimentResultFormat.sql b/src/main/resources/db/migration/V7_1__NewExperimentResultFormat.sql
index d124f94583046e2ddbab071fb38ca48e1c71f03e..e1d5f12c4ce1dd9107f3a4cb1927664cfe971feb 100644
--- a/src/main/resources/db/migration/V7_1__NewExperimentResultFormat.sql
+++ b/src/main/resources/db/migration/V7_1__NewExperimentResultFormat.sql
@@ -1 +1,15 @@
-UPDATE experiment SET result = result::json #>>'{0,result}' WHERE (algorithm::json->>'type') <> 'workflow';
\ No newline at end of file
+CREATE OR REPLACE FUNCTION ISJSON(p_json text)
+    RETURNS boolean
+AS
+$$
+BEGIN
+    RETURN (p_json::json is not null);
+EXCEPTION
+    WHEN others THEN
+        RETURN false;
+END;
+$$
+language plpgsql
+immutable;
+UPDATE experiment SET result = result::json #>>'{0,result}' WHERE (algorithm::json->>'type') <> 'workflow' and ISJSON(result);
+UPDATE experiment SET result = '', status = 'error' WHERE NOT ISJSON(result);