nextcloud / nextcloud/server

[Bug]: Error while running background job ExpireVersions - Missing permissions to delete version

Open
#46,737 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop 31-feedback bug feature: versions
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

⚠️ This issue respects the following points: ⚠️
Bug description

Error while running background job (class: OCA\Files_Versions\BackgroundJob\ExpireVersion: Exception OCP\Files\NotPermittedException
(86 occurrences in 2 days)

Steps to reproduce

This happens if you have a S3 as primary storage. See background job logs

Expected behavior

I dont see the error.

A solution would be:
https://github.com/nextcloud/server/blob/master/apps/files_versions/lib/Storage.php#L596

  • to put that line inside a try/catch in order to catch the NotPermittedException, so that it does not exit the loop as soon as an exception like that is thrown
  • in the catch, to add an error log message indicating the file id and the exception type
Installation method

None

Nextcloud Server version

28

Operating system

None

PHP engine version

None

Web server

None

Database engine version

None

Is this bug present after an update or on a fresh install?

None

Are you using the Nextcloud Server Encryption module?

None

What user-backends are you using?
  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other
Configuration report

No response

List of activated Apps

No response

Nextcloud Signing status

No response

Nextcloud Logs

No response

Additional info

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in apps/files_versions/lib/Storage.php around line 596 and trace how the ExpireVersion background job reaches that operation for S3 primary storage. Done means a NotPermittedException no longer stops the deletion loop and the catch records the file ID and exception type in the error log.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend, cloud
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.