Skip to content

馃悶 Bug: project discovery cancels on subdir with insufficient permissions#3043

Description

@Jannes-Dailidow

Bug Description

When Arcane performs its initial project sync, encountering any subdirectory with insufficient read/open permissions (such as a system-created lost+found folder on a mounted drive) causes the entire project discovery process to fail and cancel. Instead of skipping the inaccessible directory and continuing to scan valid project folders, the application logs a hard error and aborts the scan.

Steps To Reproduce

  1. Mount a dedicated drive or partition directly to the path used for Arcane's projects directory (e.g., /srv). This automatically creates a system lost+found directory with default root-only permissions (drwx------ root:root).
  2. Run the Arcane container using a non-root user configuration (e.g., PUID=500, PGID=500).
  3. Start the container and observe the initialization logs during the filesystem watcher setup and initial project sync.

Expected Behavior

Subfolders or system directories that the container's user ID does not have permissions to read should be gracefully skipped. The application should log a WARN or INFO message regarding the skipped path and continue scanning the rest of the target directory for valid projects.

Actual Behavior

The initial project scan aborts completely upon hitting the first permission roadblock, preventing any valid projects in the same root directory from being discovered.

Screenshots

No response

Arcane Version

v2.1.0

Installation Method

Docker Compose (Recommended)

Environment Type

Local Docker (Single instance)

Database Type

SQLite (Default)

Operating System

Linux

Docker Version

29.6.0

Browser & Version

No response

Relevant Logs or Error Messages

arcane-1  | Jun 28 17:25:52.456 ERR Initial project sync failed error="Failed to discover projects in \"/srv\": open /srv/lost+found: permission denied"

Docker Compose Configuration

arcane:
    image: ghcr.io/getarcaneapp/manager:v2.1.0
    restart: unless-stopped
    ports:
      - 3552:3552
    volumes:
      - ./arcane/data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /srv:/srv
    environment:
      PUID: 500
      PGID: 500
      ...
      DATABASE_URL: file:data/arcane.db?_pragma=journal_mode(WAL)&_pragma=busy_timeout(2500)&_txlock=immediate
      PROJECTS_DIRECTORY: /srv
    labels:
      - wud.tag.include=^v\d+\.\d+\.\d+$$

Environment Configuration (.env file)

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions