Transcoded videos on my instance are typically transferred to object storage within a couple minutes.
However, since about a day ago, all transcoded videos seem to be stuck in the « to move » state.
I tried to force one of the videos to move by issuing a CLI command, but it simply said This video is already being moved to external storage/file system.
There doesn’t seem to be a corresponding error in the logs. It just never attempted to move them.
I have a similar problem. In the videos section, some videos appear with the label « To move to an external storage », but several days have passed and they still haven’t been moved to S3.
When checking the logs, I found this error:
Job: 5917
Type: move-to-object-storage
Processed on 7/1/25, 6:23:45.517 PM
Finished on 7/1/25, 6:23:45.665 PM
{
"videoUUID": "6e75fcf1-a138-4b49-b067-9da7a8898fd9",
"isNewVideo": true,
"previousVideoState": 2
}
InvalidArgument: Unsupported value for canned acl 'private'
at throwDefaultError (/app/node_modules/@smithy/smithy-client/dist-cjs/index.js:867:20)
...
After researching in the forum and checking some issues, it seems that the « Unsupported value for canned acl ‹ private › » error is related to the upload_acl configuration. Currently, I have it set like this:
upload_acl:
# ACL for public/unlisted videos
public: null
# ACL for private/internal videos
private: null
I’ve read in some threads that it’s recommended to set both upload_acl.public and upload_acl.private to null if your S3 provider does not support object ACLs, which seems to be my case. However, all the jobs that fail show the same error: « Unsupported value for canned acl ‹ private › ».
My questions are:
Should I explicitly set upload_acl.private to null, or just leave it undefined?
Why do other videos get moved to S3 without any issues, and only some of them fail? Could it be because those videos are set as private?
If anyone has encountered the same problem and found a solution, I’d really appreciate it if you could share your experience. Thanks!
We using PeerTube with Docker and docker-compose. If you need more details, please let me know. Our current configuration works correctly: when a video is uploaded, it gets transcoded and then successfully uploaded to S3 storage without issues.
However, we have noticed that some videos are not being uploaded.
We have tried running the create-move-video-storage-job to regenerate the job and move the video, but we get the following message:
« This video is already being moved to external storage/file system »
Despite this, the video does not have the « object storage » tag and still shows the « To move to an external storage » tag.
Additionally, we have observed that videos uploaded as private are never moved to S3 and always remain with the « To move to an external storage » tag and the job in failed state.
Is our understanding correct that videos marked as private are never uploaded to S3? Could you please clarify this behavior in more detail?
Finally, is there an option to disable private video uploads for users? We need to ensure that absolutely all content is uploaded to S3 and nothing remains on the local server disk.
AAAAAH Damn it! That was exactly it. Thanks for everything! Now it looks like everything is being uploaded correctly.
One question: for the videos that haven’t been uploaded to object storage yet and are still pending, will they eventually be uploaded automatically, or do we need to do something manually on our side?