fix: video size error handling — validation, timeouts, failure surfacing
Backend: - Increase ffmpeg/ffprobe timeouts from 15s to 60s for large videos - Classify processing errors (timeout, OOM, corrupt) with user-facing messages - Emit failure details via media:job:update socket event (error field) - Bump refboard container memory 512M → 1G Frontend: - Client-side file size validation (200MB) before upload starts - Oversized files show immediate error in upload manager, skip upload - Handle media:job:update status='failed' — surface error in upload panel - Add processingFailed() to UploadManager for video processing errors
This commit is contained in:
@@ -88,6 +88,18 @@ export class UploadManager {
|
||||
}
|
||||
}
|
||||
|
||||
/** Video processing failed (from media:job:update socket event with status='failed'). */
|
||||
processingFailed(imageId: string, error: string) {
|
||||
for (const job of this.jobs.values()) {
|
||||
if (job.imageId === imageId && (job.status === 'processing' || job.status === 'uploading')) {
|
||||
job.status = 'failed';
|
||||
job.error = error;
|
||||
this._notify();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Mark a job as failed. */
|
||||
setFailed(jobId: string, error: string) {
|
||||
const job = this.jobs.get(jobId);
|
||||
|
||||
Reference in New Issue
Block a user