diff --git a/src/pages/internal/jobs.tsx b/src/pages/internal/jobs.tsx
index 4287e2ce0cd220ce0e5278b4bfa6ac69f7951c0b..7a0b3fcdab9ed3fb6a65ec6bee554f194552f218 100644
--- a/src/pages/internal/jobs.tsx
+++ b/src/pages/internal/jobs.tsx
@@ -82,7 +82,7 @@ function JobList({ jobsResp }: { jobsResp: GetJobsResponse }) {
                                     <td>{job.on_end_event_type}</td>
                                     <td>
                                         <ExpandableString
-                                            value={job.on_end_event_data}
+                                            value={job.on_end_event_data && JSON.stringify(job.on_end_event_data)}
                                             maxLength={20}
                                         />
                                     </td>
diff --git a/src/videoag/miscellaneous/ExpandableString.tsx b/src/videoag/miscellaneous/ExpandableString.tsx
index 43c8246c2083f503a80e3d8267b1b9115b2f52e0..d3b06f8766b47f1f6e630e36c1b1c14a37685da4 100644
--- a/src/videoag/miscellaneous/ExpandableString.tsx
+++ b/src/videoag/miscellaneous/ExpandableString.tsx
@@ -8,6 +8,9 @@ export function ExpandableString({
     maxLength: number;
 }) {
     value = value ?? "";
+    if (typeof value !== "string") {
+        throw new TypeError(`Cannot handle non-string value of type '${typeof value}': ${value}`);
+    }
 
     const [expand, setExpand] = useState(false);
     if (value.length <= maxLength) return value;