diff --git a/backend/server.py b/backend/server.py
index f6161e9..2c2f891 100644
--- a/backend/server.py
+++ b/backend/server.py
@@ -630,8 +630,8 @@ async def cancel_job(job_id: str, user: dict = Depends(require_admin)):
raise HTTPException(status_code=400, detail="Cannot cancel a running job")
await db.transcode_queue.update_one({"id": job_id}, {"$set": {"status": "cancelled", "finished_at": datetime.now(timezone.utc).isoformat()}})
if job["status"] == "pending":
- # Reset movie hls_status so a new transcode can be triggered
- await db.movies.update_one({"id": job["movie_id"]}, {"$set": {"hls_status": None}})
+ # Reset movie hls_status AND clear stale hls_path so the row no longer shows as transcoded
+ await db.movies.update_one({"id": job["movie_id"]}, {"$set": {"hls_status": None, "hls_path": None}})
return {"ok": True}
diff --git a/frontend/src/pages/TranscodeQueue.jsx b/frontend/src/pages/TranscodeQueue.jsx
index c835a45..a9128ef 100644
--- a/frontend/src/pages/TranscodeQueue.jsx
+++ b/frontend/src/pages/TranscodeQueue.jsx
@@ -113,6 +113,11 @@ export default function TranscodeQueue() {
{new Date(j.created_at).toLocaleString()}
+ {j.status === "running" && (
+
+ )}
{j.status === "pending" && (