diff --git a/gui/frontend/src/services/api/event.ts b/gui/frontend/src/services/api/event.ts
index 23f743a..8468356 100644
--- a/gui/frontend/src/services/api/event.ts
+++ b/gui/frontend/src/services/api/event.ts
@@ -61,12 +61,16 @@ export async function progressListener(
   let maxNum = 0;
   let unlisten: (() => void) | null = null;
   const eventHandler: EventCallback<Payload> = (event) => {
+    /** file count to % */
     const toPercentage = (num: number) => (num * 100) / maxNum;
+    /** To 0 ~ 100 */
+    const clamped = (progress: number) => Math.max(0, Math.min(100, progress));
 
     if (maxNum === 0) {
       maxNum = event.payload.index;
     } else {
-      setProgress(toPercentage(event.payload.index));
+      const percent = toPercentage(event.payload.index);
+      setProgress(clamped(percent));
     }
   };