Skip to content

Post-processing fails on SMB/CIFS library after a successful file transfer because Pullbox requires chmod as fixed UID 65532 #132

Description

@paulmorabito

Component

Downloads / Acquisition

Description

Pullbox successfully downloads, locates, validates, and transfers a comic file into my SMB/CIFS-backed /comics library, but then marks the post-processing operation as failed because a final mode-preservation chmod operation returns Operation not permitted.

The comic is physically present at the correct destination with the exact expected byte count, but Pullbox does not register it as imported/owned because the metadata operation fails afterward.

This makes Pullbox difficult to use with a normal shared SMB library that is also used by other applications, including Komga.

Steps to Reproduce

  1. Add a comic.
  2. Search for an issue.
  3. select and download

Expected Behavior

When the file transfer and comic validation both succeed, Pullbox should register the file in the library even if an optional POSIX metadata operation such as mode preservation, chmod, ownership preservation, or xattr handling is unsupported by the destination filesystem or unavailable to Pullbox's sandboxed user.

For SMB/CIFS/NFS/FUSE and similar network-backed library roots, Pullbox should:

  1. Treat file mode/ownership/xattr preservation as best-effort or configurable.
  2. Log a warning when those optional operations fail.
  3. Continue registering the successfully transferred and validated file.
  4. Clearly show that file transfer succeeded but metadata preservation was skipped.
  5. Offer an option such as Preserve file permissions/metadata: Auto | On | Off.

A user should not need to remount a shared library as Pullbox's internal UID/GID solely so the container can call chmod after copying a file.

Actual Behavior

Pullbox successfully completed the normal download and file-transfer workflow:

  1. Sent the download to SABnzbd.
  2. Detected the completed CBR at the expected shared download path.
  3. Resolved the completed file correctly.
  4. Validated the archive.
  5. Created the destination series folder under /comics.
  6. Transferred the complete CBR into the intended library directory.

Pullbox then fails while attempting to preserve/apply file mode metadata at the destination:

PermissionError: [Errno 1] Operation not permitted:
'/comics/Everything Dead & Dying (2025)/Everything Dead & Dying (2025) #005.cbr'

The traceback shows the error occurs after transfer, in:

shutil.copy()
  -> copymode()
  -> chmod()

Pullbox records the download/post-processing result as failed and does not register the file, despite the complete CBR already existing in the correct final library folder.

My SMB mount intentionally presents the shared library as uid=1000,gid=100 for the host user and other applications. This is a normal multi-application media-library arrangement.

Remounting the entire shared library as uid=65532,gid=65532 solely to accommodate one container would be invasive and brittle:

  • The library is shared with Komga and other software.
  • The host user needs ordinary access to it.
  • Other containers may use different UID/GID mappings.
  • 65532:65532 is a container-specific service identity, not a useful shared-library ownership model.

Pullbox can already read the library, create destination directories, and copy the file bytes. The only failing operation is a final POSIX metadata change after a successful transfer.

Pullbox Version

1.2.1

Deployment Method

Docker

Operating System

No response

Diagnostic Package

No response

Screenshots

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions