Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Foca68

Members
  • Joined

  • Last visited

  1. Thank you @Human-126094 for the quick fix and for the clear explanation of the cause. I tested v2.60.0 on my setup (unRAID, NTFS disks through Unassigned Devices) and the move onto NTFS now works. I'm glad the tests helped track down the problem, and I really appreciate your responsiveness and the effort you put into improving x265-Butler for everyone. Great work, and thanks for taking the time to reproduce the problem and answer so fast. x265-butler is a really well-made tool. Keep up the great work!
  2. Confirmed. After restoring /mnt/medialib -> /media, the test as UID 99:100 reproduces the exact EPERM error when Node.js fs.promises.copyFile() copies from /cache to the NTFS-backed /media path. The test file is shown as owner 0:0, and the temporary files were cleaned up. I’ll use the application-side fix when available rather than changing the disk mount options for now. Mounting the NTFS disks with uid=99,gid=100 is the workaround; I'm not sure Unassigned Devices exposes that option per disk. Thanks for reproducing and addressing this. root@NAS:~# docker exec x265-butler stat -c '%u:%g' /proc/1 0:0 root@NAS:~# findmnt -T /mnt/disks/SG3_TV_Shows -o TARGET,FSTYPE,OPTIONS TARGET FSTYPE OPTIONS /mnt/disks/SG3_TV_Shows fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 root@NAS:~# docker exec -u 99:100 x265-butler sh -c 'head -c 16M /dev/zero > /cache/eperm-test.bin' root@NAS:~# docker exec -u 99:100 x265-butler node -e "require('fs').promises.copyFile('/cache/eperm-test.bin','/media/TV Shows/Columbo (1971)/Season 06/eperm-test.tmp').then(()=>console.log('ok'),e=>console.log(e.message))" EPERM: operation not permitted, copyfile '/cache/eperm-test.bin' -> '/media/TV Shows/Columbo (1971)/Season 06/eperm-test.tmp' root@NAS:~# docker exec x265-butler rm -f /cache/eperm-test.bin "/media/TV Shows/Columbo (1971)/Season 06/eperm-test.tmp"
  3. Foca68 joined the community
  4. Hi, I'm running x265-Butler 2.59.0, commit 0fb0d80c, Docker image created 2026-10-19. A job successfully encoded a video, but failed during the final copy step with: EPERM: operation not permitted, copyfile '/cache/work/9/output.x265.mkv' -> '/media/TV Shows/Columbo (1971)/Season 06/Columbo (1971) - S06E02 - Old Fashioned Murder-x265.mkv.x265-butler.move.tmp' Environment: Unraid Docker container, running as root inside the container /cache maps to /mnt/disks/CR_4TB/temp (fuseblk) /media maps to /mnt/medialib (mergerFS) Target directory exists only on mergerFS branch /mnt/disks/SG3_TV_Shows mergerFS category.create=mspmfs, func.create=mspmfs, func.rename=epall All branches have sufficient free space Tests: Host shell copy to the target directory succeeds. Container shell copy to the target directory succeeds. Node.js fs.promises.copyFile() with 16 MB and 1 MB test files to the same target directory succeeds. After the failed job, /cache/work is empty and no .move.tmp file remains. Could you check whether the final transfer step in 2.59.0 has a known issue or uses any special flags/operations that could cause this EPERM on mergerFS/fuseblk?

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.