PeerTube S3 Object Storage broken after upgrade(s) - Fix
-
I recently hit an issue where my PeerTube instance stopped being able to upload videos to my Scaleway S3 bucket. All
move-to-object-storagejobs were failing with this error:NoSuchBucket: The specified bucket does not existThe confusing part was that the bucket definitely existed, and I could even connect to it successfully from the PeerTube web terminal using the AWS SDK directly.
The Problem
Recent versions of PeerTube (v6+) changed the object storage config format. New storage sections are now required:
user_exports:,original_video_files:, andcaptions:.The v6.0.0 changelog also mentions that Docker environment variables were renamed (e.g.,
PEERTUBE_OBJECT_STORAGE_VIDEOS_*→PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_*), which the Cloudron devs will have implemented. However, the YAML config keyvideos:still appears to work based on the AWS example in the docs and this Hetzner S3 guide from October 2025.See the official PeerTube Remote Storage documentation for the current config format.
My old config (broken in PeerTube v6+):
object_storage: enabled: true endpoint: 'https://s3.fr-par.scw.cloud' region: 'fr-par' videos: bucket_name: 'your-bucket-name' prefix: 'videos/' streaming_playlists: bucket_name: 'your-bucket-name' prefix: 'streaming-playlists/' credentials: access_key_id: 'YOUR_ACCESS_KEY' secret_access_key: 'YOUR_SECRET_KEY' max_upload_part: 2GBMy new config (working with PeerTube v6+):
object_storage: enabled: true endpoint: 'https://s3.fr-par.scw.cloud' region: 'fr-par' credentials: access_key_id: 'YOUR_ACCESS_KEY' secret_access_key: 'YOUR_SECRET_KEY' max_upload_part: 2GB web_videos: bucket_name: 'your-bucket-name' prefix: 'web-videos/' streaming_playlists: bucket_name: 'your-bucket-name' prefix: 'streaming-playlists/' user_exports: bucket_name: 'your-bucket-name' prefix: 'user-exports/' original_video_files: bucket_name: 'your-bucket-name' prefix: 'original-video-files/' captions: bucket_name: 'your-bucket-name' prefix: 'captions/'Key changes:
videos:→web_videos:(matches the Docker env var rename, thoughvideos:may still work)prefix: 'videos/'→prefix: 'web-videos/'(not strictly necessary, but matches the Backblaze example in the docs)- Added required sections:
user_exports:,original_video_files:, andcaptions:
After updating
production.yamland restarting PeerTube from the Cloudron dashboard, all my failed jobs completed successfully.Hope this helps someone else!
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login