nextcloud / nextcloud/desktop

macOS File Provider: “Remove Downloaded Items” only partially evicts folders and is missing for some downloaded files

Open
#10,555 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
C++
Stars
3.9k
Forks
1k
Avg merge
1d 21h
Merged PRs (30d)
127

Description

Title: macOS Sequoia: Recursive “Remove Downloaded Items” is incomplete and “Remove Download” is missing for some files

### Description

With the macOS File Provider integration, selecting “Remove Downloaded Items” on a folder only evicts some descendants. Other files remain stored locally.

For some of those remaining files, the individual “Remove Download” action is not offered at all, although the files are fully uploaded, fully downloaded and not marked to be kept downloaded.

### Environment

- macOS Sequoia 15.7.x
- Nextcloud Desktop Client 34.0.1
- Nextcloud Server 33, hosted on Hetzner Storage Share
- File Provider / virtual files enabled

### Steps to reproduce

1. Make a folder and its contents available locally.
2. Wait until the client reports that synchronization is complete.
3. Select “Remove Downloaded Items” on the folder.
4. Inspect its descendants afterward.
5. Open the context menu of files that remain locally available.

### Actual result

Only some descendants become dataless placeholders. Other files remain downloaded.

For some remaining files, “Remove Download” is available and works when selected individually. For other remaining files, the action is completely absent.

For one affected file, `fileproviderctl evaluate ` reports:

```text
isDownloaded = 1
isUploaded = 1
isDownloading = 0
isUploading = 0
isKeepDownloaded = 0
displayEvict = 0
displayEvictDescendants = 0
```

The file is therefore uploaded, locally materialized and not pinned, but Nextcloud suppresses the eviction action.

### Expected result

“Remove Downloaded Items” on a folder should recursively evict all uploaded and unpinned descendants. Every locally downloaded, uploaded and unpinned file should offer “Remove Download”. If eviction is impossible, the client should display the affected file and a meaningful error instead of silently completing only part of the operation.

### Workaround

Resetting the complete File Provider domain recreates the files as dataless placeholders, but this is not practical for routinely archiving individual folders.

This may be related to or a regression of #7832 and the File Provider eviction changes introduced in 33.0.5.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the folder and individual eviction behavior with fileproviderctl evaluate, then review the File Provider eviction changes introduced in 33.0.5 and related issue #7832. Done means all uploaded, unpinned descendants can be evicted recursively, eligible files expose “Remove Download,” and failures identify the affected file instead of completing silently.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, macos
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.