“Delete” link not showing in some files

One of my users has reported some of his files cannot be deleted from the web interface, due to the “delete” link not showing up

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • 33.0.3
  • Operating system and version (e.g., Ubuntu 24.04):
    • Debian 13
  • Web server and version (e.g, Apache 2.4.25):
    • 2.466-1~deb13u2
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • Not used
  • PHP version (e.g, 8.3):
    • 8.4
  • Is this the first time you’ve seen this error? (Yes / No):
    • yes
  • When did this problem seem to first start?
    • April 21
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • Bare metal
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • no

Summary of the issue you are facing:

Some files/directories don’t present a “trashbin” icon and thus cannot e delete from the user interface.

Steps to replicate it (hint: details matter!):

Cannot replicate it :slightly_frowning_face: It remains stable (i.e., files that have presented this issue keep presenting it).

Log entries

Nextcloud

This error was not generated while trying to replicate the issue, but happened close enough to it that it got my attention:

{"reqId":"a35r5sDOItA75A9GxUlw","level":3,"time":"2026-05-04T18:50:15+00:00","remoteAddr":"","user":"--","app":"files_trashbin","method":"","url":"--","scriptName":"/var/www/nextcloud/cron.php","message":"Error while expiring trashbin for user isalia","userAgent":"--","version":"33.0.3.2","occ_command":["/var/www/nextcloud/cron.php"],"exception":{"Exception":"Error","Message":"Call to undefined method OC\\DB\\QueryBuilder\\QueryBuilder::execute()","Code":0,"Trace":[{"file":"/var/www/nextcloud/ext-apps/maps/lib/Service/TracksService.php","line":145,"function":"deleteByFileId","class":"OCA\\Maps\\Service\\TracksService","type":"->"},{"file":"/var/www/nextcloud/ext-apps/maps/lib/Hooks/FileHooks.php","line":70,"function":"deleteByFile","class":"OCA\\Maps\\Service\\TracksService","type":"->"},{"function":"{closure:OCA\\Maps\\Hooks\\FileHooks::register():62}","class":"OCA\\Maps\\Hooks\\FileHooks","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/lib/private/Hooks/EmitterTrait.php","line":89,"function":"call_user_func_array"},{"file":"/var/www/nextcloud/lib/private/Hooks/PublicEmitter.php","line":23,"function":"emit","class":"OC\\Hooks\\BasicEmitter","type":"->"},{"file":"/var/www/nextcloud/lib/private/Files/Node/Root.php","line":117,"function":"emit","class":"OC\\Hooks\\PublicEmitter","type":"->"},{"file":"/var/www/nextcloud/lib/private/Files/Node/Node.php","line":111,"function":"emit","class":"OC\\Files\\Node\\Root","type":"->"},{"file":"/var/www/nextcloud/lib/private/Files/Node/File.php","line":110,"function":"sendHooks","class":"OC\\Files\\Node\\Node","type":"->"},{"file":"/var/www/nextcloud/apps/files_trashbin/lib/Trashbin.php","line":757,"function":"delete","class":"OC\\Files\\Node\\File","type":"->"},{"file":"/var/www/nextcloud/apps/files_trashbin/lib/Trashbin.php","line":984,"function":"delete","class":"OCA\\Files_Trashbin\\Trashbin","type":"::"},{"file":"/var/www/nextcloud/apps/files_trashbin/lib/Trashbin.php","line":915,"function":"deleteExpiredFiles","class":"OCA\\Files_Trashbin\\Trashbin","type":"::"},{"file":"/var/www/nextcloud/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php","line":68,"function":"expire","class":"OCA\\Files_Trashbin\\Trashbin","type":"::"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/Job.php","line":47,"function":"run","class":"OCA\\Files_Trashbin\\BackgroundJob\\ExpireTrash","type":"->"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/TimedJob.php","line":85,"function":"start","class":"OCP\\BackgroundJob\\Job","type":"->"},{"file":"/var/www/nextcloud/core/Service/CronService.php","line":176,"function":"start","class":"OCP\\BackgroundJob\\TimedJob","type":"->"},{"file":"/var/www/nextcloud/core/Service/CronService.php","line":98,"function":"runCli","class":"OC\\Core\\Service\\CronService","type":"->"},{"file":"/var/www/nextcloud/cron.php","line":52,"function":"run","class":"OC\\Core\\Service\\CronService","type":"->"}],"File":"/var/www/nextcloud/ext-apps/maps/lib/Service/TracksService.php","Line":461,"message":"Error while expiring trashbin for user isalia","exception":"{\"class\":\"Error\",\"message\":\"Call to undefined method OC\\DB\\QueryBuilder\\QueryBuilder::execute()\",\"code\":0,\"file\":\"/var/www/nextcloud/ext-apps/maps/lib/Service/TracksService.php:461\",\"trace\":\"#0 /var/www/nextcloud/ext-apps/maps/lib/Service/TracksService.php(145): OCA\\Maps\\Service\\TracksService->deleteByFileId()\\n#1 /var/www/nextcloud/ext-apps/maps/lib/Hooks/FileHooks.php(70): OCA\\Maps\\Service\\TracksService->deleteByFile()\\n#2 [internal function]: OCA\\Maps\\Hooks\\FileHooks->{closure:OCA\\Maps\\Hooks\\FileHooks::register():62}()\\n#3 /var/www/nextcloud/lib/private/Hooks/EmitterTrait.php(89): call_user_func_array()\\n#4 /var/www/nextcloud/lib/private/Hooks/PublicEmitter.php(23): OC\\Hooks\\BasicEmitter->emit()\\n#5 /var/www/nextcloud/lib/private/Files/Node/Root.php(117): OC\\Hooks\\PublicEmitter->emit()\\n#6 /var/www/nextcloud/lib/private/Files/Node/Node.php(111): OC\\Files\\Node\\Root->emit()\\n#7 /var/www/nextcloud/lib/private/Files/Node/File.php(110): OC\\Files\\Node\\Node->sendHooks()\\n#8 /var/www/nextcloud/apps/files_trashbin/lib/Trashbin.php(757): OC\\Files\\Node\\File->delete()\\n#9 /var/www/nextcloud/apps/files_trashbin/lib/Trashbin.php(984): OCA\\Files_Trashbin\\Trashbin::delete()\\n#10 /var/www/nextcloud/apps/files_trashbin/lib/Trashbin.php(915): OCA\\Files_Trashbin\\Trashbin::deleteExpiredFiles()\\n#11 /var/www/nextcloud/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php(68): OCA\\Files_Trashbin\\Trashbin::expire()\\n#12 /var/www/nextcloud/lib/public/BackgroundJob/Job.php(47): OCA\\Files_Trashbin\\BackgroundJob\\ExpireTrash->run()\\n#13 /var/www/nextcloud/lib/public/BackgroundJob/TimedJob.php(85): OCP\\BackgroundJob\\Job->start()\\n#14 /var/www/nextcloud/core/Service/CronService.php(176): OCP\\BackgroundJob\\TimedJob->start()\\n#15 /var/www/nextcloud/core/Service/CronService.php(98): OC\\Core\\Service\\CronService->runCli()\\n#16 /var/www/nextcloud/cron.php(52): OC\\Core\\Service\\CronService->run()\\n#17 {main}\"}","CustomMessage":"Error while expiring trashbin for user isalia"},"id":"69f8ed5664be7"}

Web Browser

I am not sure if this is related, but it’s the only message I get when viewing the affected directory and not others.

Error: [tiptap error]: The editor view is not available. Cannot access view['dom']. The editor may not be mounted yet.
    get index.js:4881
    beforeDestroy index.js:56
    VueJS 32
    onChange Editor.vue:535
    emit mitt.mjs:1
    emit mitt.mjs:1
    _handleResponse PollingBackend.ts:148
    promise callback*_fetchSteps PollingBackend.ts:139
    setInterval handler*connect PollingBackend.ts:108
    startSync SyncService.ts:189
    onOpened Editor.vue:524
    promise callback*onOpened Editor.vue:523
    emit mitt.mjs:1
    emit mitt.mjs:1
    open SyncService.ts:178
    async* WebSocketPolyfill.ts:56
    EB y-websocket.js:165
    connect y-websocket.js:560
    s7e y-websocket.js:444
    zl SyncServiceProvider.js:41
    initSession Editor.vue:439
    created Editor.vue:416
    VueJS 23
vue.runtime.esm.js:3065:17

Configuration

Nextcloud

The output of occ config:list system or similar is best, but, if not possible, the contents of your config.php file from /path/to/nextcloud is fine (make sure to remove any identifiable information!):

{
    "system": {
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "nextcloud.myorga.rg"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "33.0.3.2",
        "overwrite.cli.url": "https:\/\/nextcloud.myorga.org\/",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "default_phone_region": "MX",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpmode": "sendmail",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpdebug": false,
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "htaccess.RewriteBase": "\/",
        "apps_paths": [
            {
                "path": "\/var\/www\/nextcloud\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/nextcloud\/ext-apps",
                "url": "\/ext-apps",
                "writable": true
            }
        ],
        "force_language": "es",
        "force_locale": "es_MX",
        "skeletondirectory": "\/var\/www\/src\/skeleton",
        "trashbin_retention_obligation": "7, 15",
        "logfile": "\/var\/log\/nextcloud.log",
        "maintenance": false,
        "updater.release.channel": "stable",
        "theme": "",
        "loglevel": 0,
        "mysql.utf8mb4": true,
        "app_install_overwrite": {
            "0": "calendar",
            "1": "groupfolders",
            "2": "socialsharing_email",
            "4": "socialsharing_twitter",
            "5": "maps"
        },
        "filelocking.enabled": true,
        "mail_sendmailmode": "smtp",
        "mail_smtpport": "25",
        "maintenance_window_start": 0
    }
}

Apps

The output of occ app:list (if possible).

Enabled:
  - app_api: 33.0.0
  - bruteforcesettings: 6.0.0
  - calendar: 6.2.3
  - circles: 33.0.0
  - cloud_federation_api: 1.17.0
  - contacts: 8.4.5
  - contactsinteraction: 1.14.1
  - dashboard: 7.13.0
  - dav: 1.36.0
  - federatedfilesharing: 1.23.0
  - federation: 1.23.0
  - files: 2.5.0
  - files_downloadlimit: 5.1.0
  - files_external: 1.25.1
  - files_pdfviewer: 6.0.0
  - files_reminders: 1.6.0
  - files_sharing: 1.25.2
  - files_trashbin: 1.23.0
  - files_versions: 1.26.0
  - firstrunwizard: 6.0.0
  - forms: 5.2.7
  - groupfolders: 21.0.7
  - impersonate: 4.0.0
  - logreader: 6.0.0
  - lookup_server_connector: 1.21.0
  - maps: 1.6.0
  - nextcloud_announcements: 5.0.0
  - notes: 5.0.0
  - notifications: 6.0.0
  - oauth2: 1.21.0
  - password_policy: 5.0.0
  - polls: 9.0.7
  - privacy: 5.0.0
  - profile: 1.2.0
  - provisioning_api: 1.23.0
  - quota_warning: 1.23.0
  - recommendations: 6.0.0
  - related_resources: 4.0.0
  - serverinfo: 5.0.0
  - settings: 1.16.0
  - sharebymail: 1.23.0
  - socialsharing_email: 4.1.0
  - socialsharing_twitter: 4.1.0
  - survey_client: 5.0.0
  - systemtags: 1.23.0
  - tasks: 0.17.1
  - text: 7.0.1
  - theming: 2.8.0
  - twofactor_backupcodes: 1.22.0
  - twofactor_totp: 15.0.0
  - updatenotification: 1.23.0
  - user_status: 1.13.0
  - viewer: 6.0.0
  - weather_status: 1.13.0
  - webhook_listeners: 1.5.0
  - workflowengine: 2.15.0
Disabled:
  - activity: 6.0.0 (installed 2.14.3)
  - admin_audit: 1.23.0
  - comments: 1.23.0 (installed 1.4.0)
  - deck: 1.17.1 (installed 1.17.1)
  - encryption: 2.21.0
  - files_rightclick: 1.6.0 (installed 1.6.0)
  - mail: 5.7.14 (installed 5.7.14)
  - photos: 6.0.0 (installed 1.5.0)
  - support: 5.0.0 (installed 1.1.0)
  - suspicious_login: 11.0.0
  - testing: 1.23.0
  - twofactor_nextcloud_notification: 7.0.0
  - user_ldap: 1.24.0