diff --git a/server/lib/video-state.ts b/server/lib/video-state.ts
index 9ebbd7679..893725d85 100644
--- a/server/lib/video-state.ts
+++ b/server/lib/video-state.ts
@@ -82,7 +82,10 @@ async function moveToExternalStorageState (options: {
   if (pendingTranscode !== 0) return false
 
   const previousVideoState = video.state
-  await video.setNewState(VideoState.TO_MOVE_TO_EXTERNAL_STORAGE, isNewVideo, transaction)
+
+  if (video.state !== VideoState.TO_MOVE_TO_EXTERNAL_STORAGE) {
+    await video.setNewState(VideoState.TO_MOVE_TO_EXTERNAL_STORAGE, isNewVideo, transaction)
+  }
 
   logger.info('Creating external storage move job for video %s.', video.uuid, { tags: [ video.uuid ] })