diff --git a/src/components/parameter-schema/form-mode/ParameterStringInput.vue b/src/components/parameter-schema/form-mode/ParameterStringInput.vue
index b6be2cb88238b1e10ead54d2a32c37cd99ac0505..1bd3299a3b50b845a77f45b9d123a05ee3517ae9 100644
--- a/src/components/parameter-schema/form-mode/ParameterStringInput.vue
+++ b/src/components/parameter-schema/form-mode/ParameterStringInput.vue
@@ -114,7 +114,7 @@ function updateValue() {
       "update:modelValue",
       !s3Path.bucket && s3Path.key
         ? undefined
-        : `s3://${s3Path.bucket}/${s3Path.key}`
+        : `s3://${s3Path.bucket}/${s3Path.key ?? ""}`
     );
   } else {
     emit(
diff --git a/src/views/workflows/ListWorkflowExecutionsView.vue b/src/views/workflows/ListWorkflowExecutionsView.vue
index 2ad5c43b8807c70c3e81721582da093f4b42303d..7d0e5488d999ee6d744ebf729ceebe97d86a47c1 100644
--- a/src/views/workflows/ListWorkflowExecutionsView.vue
+++ b/src/views/workflows/ListWorkflowExecutionsView.vue
@@ -138,7 +138,8 @@ function updateExecutions() {
           )
           .filter(
             // filter already seen workflow versions
-            (version) => !executionsState.versionMapping[version.workflow_id]
+            (version) =>
+              !executionsState.versionMapping[version.workflow_version_id]
           )
           .filter(
             // filter unique workflow versions
@@ -225,9 +226,14 @@ onMounted(() => {
     class="row m-2 border-bottom border-light mb-4 justify-content-between align-items-center"
   >
     <h1 class="mb-2 text-light w-fit">My Workflow Executions</h1>
-    <router-link :to="{ name: 'workflows' }" class="btn btn-primary w-fit"
-      >Start Workflow Execution</router-link
-    >
+    <div class="w-fit">
+      <button class="btn btn-light me-2" @click="updateExecutions">
+        <font-awesome-icon icon="fa-solid fa-arrow-rotate-right" />
+      </button>
+      <router-link :to="{ name: 'workflows' }" class="btn btn-primary"
+        >Start Workflow Execution</router-link
+      >
+    </div>
   </div>
   <table
     class="table table-dark table-striped table-hover caption-top align-middle"
@@ -245,6 +251,7 @@ onMounted(() => {
         <th scope="col">Status</th>
         <th scope="col">Started</th>
         <th scope="col">Ended</th>
+        <th scope="col">Notes</th>
         <th scope="col"></th>
       </tr>
     </thead>
@@ -254,13 +261,16 @@ onMounted(() => {
           <td class="placeholder-glow w-25">
             <span class="placeholder col-6"></span>
           </td>
-          <td class="placeholder-glow" style="width: 20%">
+          <td class="placeholder-glow" style="width: 15%">
             <span class="placeholder col-4"></span>
           </td>
-          <td class="placeholder-glow" style="width: 20%">
+          <td class="placeholder-glow" style="width: 15%">
             <span class="placeholder col-6"></span>
           </td>
-          <td class="placeholder-glow" style="width: 20%">
+          <td class="placeholder-glow" style="width: 15%">
+            <span class="placeholder col-6"></span>
+          </td>
+          <td class="placeholder-glow" style="width: 15%">
             <span class="placeholder col-6"></span>
           </td>
           <td class="text-end">
@@ -290,14 +300,19 @@ onMounted(() => {
             <span class="placeholder col-6"></span>
           </td>
           <td v-else>
-            <span>{{
-              executionsState.workflowMapping[execution.workflow_id]
-            }}</span>
-            <span
-              >@{{
-                executionsState.versionMapping[execution.workflow_version_id]
-              }}</span
+            <router-link
+              :to="{
+                name: 'workflow-version',
+                params: {
+                  versionId: execution.workflow_version_id,
+                  workflowId: execution.workflow_id,
+                },
+              }"
             >
+              {{ executionsState.workflowMapping[execution.workflow_id] }}@{{
+                executionsState.versionMapping[execution.workflow_version_id]
+              }}
+            </router-link>
           </td>
           <td>
             <span
@@ -316,6 +331,10 @@ onMounted(() => {
             </template>
             <template v-else> - </template>
           </td>
+          <td class="text-truncate">
+            <template v-if="execution.notes">{{ execution.notes }}</template>
+            <template v-else>-</template>
+          </td>
           <td class="text-end">
             <div
               class="btn-group btn-group-sm dropdown-center dropdown-menu-start"
@@ -358,7 +377,7 @@ onMounted(() => {
         </tr>
       </template>
       <tr v-else>
-        <td colspan="5" class="text-center"><i>No workflow executions</i></td>
+        <td colspan="6" class="text-center"><i>No workflow executions</i></td>
       </tr>
     </tbody>
   </table>
diff --git a/src/views/workflows/StartWorkflowView.vue b/src/views/workflows/StartWorkflowView.vue
index b539b33e5d26394231004855e6b80b61a6e54a28..fc8c681ba372cb3a63515f239530618e3354f18f 100644
--- a/src/views/workflows/StartWorkflowView.vue
+++ b/src/views/workflows/StartWorkflowView.vue
@@ -4,7 +4,6 @@ import type { WorkflowVersionFull } from "@/client/workflow";
 import { WorkflowVersionService } from "@/client/workflow";
 import axios from "axios";
 import { onMounted, ref, reactive } from "vue";
-import type { JSONSchemaType } from "ajv";
 
 const props = defineProps<{
   versionId: string;
@@ -15,7 +14,7 @@ const parameterSchema = ref(undefined);
 
 const versionState = reactive<{
   // eslint-disable-next-line @typescript-eslint/no-explicit-any
-  parameterSchema?: JSONSchemaType<any>;
+  parameterSchema?: Record<string, any>;
   workflowVersion?: WorkflowVersionFull;
 }>({
   parameterSchema: undefined,