Skip to content

TigrisFS doesn't show files uploaded via rclone bisync - missing folder markers #460

@groksrc

Description

@groksrc

Problem

Files uploaded to Tigris S3 bucket via rclone bisync are not visible through the TigrisFS FUSE mount. Users report bisync completing successfully with files transferred, but MCP tools and web UI show empty results.

Root Cause

TigrisFS requires folder marker objects (empty S3 objects with keys ending in /) to recognize directory structure. Rclone bisync does not create these folder markers when uploading new directories.

Evidence

For a working folder that was created through the UI:

EXISTS: project-a/
EXISTS: project-a/subfolder/

For a folder created via bisync:

EXISTS: project-b/
MISSING: project-b/.claude/
MISSING: project-b/.claude/agents/

Files exist in S3 and are readable via boto3, but TigrisFS mount shows empty directory.

Reproduction Steps

  1. User runs bm project bisync --name myproject --resync
  2. Rclone uploads files to S3 (e.g., myproject/folder/file.md)
  3. Rclone does NOT create folder markers (myproject/folder/)
  4. TigrisFS mount at /app/data/myproject/ shows empty
  5. Database sync triggered but finds no files to index

Workaround

Manually create folder markers via Python/boto3:

# For each file path, extract folder prefixes and create empty marker objects
s3.put_object(Bucket=bucket, Key='myproject/folder/', Body=b'')

After creating missing folder markers, TigrisFS immediately shows all files.

Permanent Fix Options

  1. Post-bisync hook: After rclone bisync completes, scan for missing folder markers and create them
  2. Rclone configuration: Use --s3-directory-markers flag if available
  3. Pre-sync preparation: Create folder markers before bisync based on local directory structure

Affected Components

  • src/basic_memory/cli/commands/cloud/rclone_commands.py - project_bisync() function
  • src/basic_memory/cli/commands/project.py - bisync command

Customer Impact

  • Files sync successfully but don't appear in UI or MCP tools
  • Database indexing fails because filesystem shows no files
  • Workaround requires manual intervention on server

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcloudBasic Memory Cloud

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions