nextcloud / nextcloud/server

[Bug]: Shared folder path resolves to null

Open
#53,934 26 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

31-feedback 4. to release bug feature: sharing
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

I have a shared folder that is internally shared between users. For files directly in that Folder the path becomes null which results in this error message when opening the folder from the user that the folder is shared with:

[webdav] Fehler: OC\Files\Storage\Wrapper\Wrapper::getOwner(): Argument #1 ($path) must be of type string, null given, called in /var/www/nextcloud/lib/private/Files/View.php on line 1528
	PROPFIND /remote.php/dav/files/pascal/Filme/
	von 2a02:8070:8981:b640:6708:8517:4476:bf56 von pascal um 14.07.2025, 16:02:53

I replaced $content['path'] on line 1528 in file lib/private/Files/View.php with $content['path'] ?? '' as a workaround and also had to apply the same fix in lib/private/legacy/OC_Helper.php on line 514.

Now opening the shared folder works, but I don't know if this should be fixed on another layer or is already fixed in master (I have Nextcloud version 31.0.7).

Steps to reproduce
  1. Create a folder with some files directly in it not subfolders
  2. Share it with another internal user or group
  3. Try to open the shared folder from the other user
Expected behavior

The folder opens normally

Nextcloud Server version

31

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.3

Web server

Apache (supported)

Database engine version

MariaDB

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

Updated from a MINOR version (ex. 32.0.1 to 32.0.2)

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?
  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other
Configuration report
{
    "system": {
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": {
            "0": "***REMOVED SENSITIVE VALUE***",
        },
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "default_phone_region": "DE",
        "version": "31.0.7.1",
        "overwrite.cli.url": "https:\/\/nextcloudpi\/",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "memcache.local": "\\OC\\Memcache\\Redis",
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 0,
            "timeout": 0,
            "password": "***REMOVED SENSITIVE VALUE***"
        },
        "tempdirectory": "\/tmp\/nextcloud\/",
        "ldap_log_file": "\/var\/log\/nextcloud\/nextcloud_ldap.log",
        "mail_smtpmode": "smtp",
        "mail_smtpauthtype": "LOGIN",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "preview_max_x": "2048",
        "preview_max_y": "2048",
        "jpeg_quality": "60",
        "overwriteprotocol": "https",
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "maintenance_window_start": "4",
        "logfile": "\/var\/log\/nextcloud\/nextcloud.log",
        "loglevel": 2,
        "log_type": "file",
        "app_install_overwrite": {
            "0": "duplicatefinder",
            "1": "impersonate",
            "2": "files_automatedtagging",
            "4": "nextcloudpi",
            "5": "previewgenerator",
            "6": "extract",
            "7": "maps"
        },
        "theme": "",
        "mail_sendmailmode": "smtp",
        "mail_smtpsecure": "ssl",
        "mail_smtpauth": 1,
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "465",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "data-fingerprint": "5ad324349d54b364515ab62db0c5e1ee",
        "ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory"
    }
}
List of activated Apps
Enabled:
  - activity: 4.0.0
  - admin_audit: 1.21.0
  - app_api: 5.0.2
  - bruteforcesettings: 4.0.0
  - calendar: 5.3.5
  - cloud_federation_api: 1.14.0
  - contacts: 7.1.5
  - dav: 1.33.0
  - deck: 1.15.1
  - federatedfilesharing: 1.21.0
  - federation: 1.21.0
  - files: 2.3.1
  - files_automatedtagging: 2.0.0
  - files_downloadlimit: 4.0.0
  - files_pdfviewer: 4.0.0
  - files_reminders: 1.4.0
  - files_sharing: 1.23.1
  - files_trashbin: 1.21.0
  - files_versions: 1.24.0
  - files_zip: 2.1.0
  - firstrunwizard: 4.0.0
  - impersonate: 2.0.0
  - integration_deepl: 1.3.1
  - logreader: 4.0.0
  - lookup_server_connector: 1.19.0
  - maps: 1.5.0
  - nextcloud_announcements: 3.0.0
  - notifications: 4.0.0
  - notify_push: 1.1.0
  - oauth2: 1.19.1
  - password_policy: 3.0.0
  - photos: 4.0.0
  - previewgenerator: 99.99.99
  - privacy: 3.0.0
  - profile: 1.0.0
  - provisioning_api: 1.21.0
  - recognize: 9.0.3
  - related_resources: 2.0.0
  - richdocuments: 8.7.2
  - richdocumentscode_arm64: 25.4.202
  - serverinfo: 3.0.0
  - settings: 1.14.0
  - sharebymail: 1.21.0
  - support: 3.0.0
  - survey_client: 3.0.0
  - systemtags: 1.21.1
  - text: 5.0.0
  - theming: 2.6.1
  - twofactor_backupcodes: 1.20.0
  - twofactor_totp: 13.0.0-dev.0
  - updatenotification: 1.21.0
  - user_ldap: 1.22.0
  - user_status: 1.11.0
  - viewer: 4.0.0
  - webhook_listeners: 1.2.0
  - workflowengine: 2.13.0
Disabled:
  - circles: 31.0.0 (installed 25.0.0)
  - comments: 1.21.0 (installed 1.15.0)
  - contactsinteraction: 1.12.0 (installed 1.11.0)
  - dashboard: 7.11.0 (installed 7.4.0)
  - encryption: 2.19.0
  - files_external: 1.23.0
  - nextcloudpi: 0.0.2 (installed 0.0.1)
  - recommendations: 4.0.0 (installed 1.3.0)
  - suspicious_login: 9.0.1 (installed 9.0.1)
  - twofactor_nextcloud_notification: 5.0.0 (installed 3.8.0)
  - weather_status: 1.11.0 (installed 1.5.0)
Nextcloud Signing status
No errors have been found.
Nextcloud Logs
{"reqId":"aHUNatkL_lnY2QZby1pGTgAACgo","level":3,"time":"2025-07-14T14:00:10+00:00","remoteAddr":"2a02:8070:8981:b640:6708:8517:4476:bf56","user":"pascal","app":"files","method":"GET","url":"/ocs/v2.php/apps/files/api/v1/folder-tree?path=%2F&depth=1","message":"OC\\Files\\Storage\\Wrapper\\Wrapper::getOwner(): Argument #1 ($path) must be of type string, null given, called in /var/www/nextcloud/lib/private/Files/View.php on line 1528","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0","version":"31.0.7.1","exception":{"Exception":"TypeError","Message":"OC\\Files\\Storage\\Wrapper\\Wrapper::getOwner(): Argument #1 ($path) must be of type string, null given, called in /var/www/nextcloud/lib/private/Files/View.php on line 1528","Code":0,"Trace":[{"file":"/var/www/nextcloud/lib/private/Files/View.php","line":1528,"function":"getOwner","class":"OC\\Files\\Storage\\Wrapper\\Wrapper","type":"->"},{"function":"OC\\Files\\{closure}","class":"OC\\Files\\View","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/lib/private/Files/View.php","line":1524,"function":"array_map"},{"file":"/var/www/nextcloud/lib/private/Files/Node/Folder.php","line":81,"function":"getDirectoryContent","class":"OC\\Files\\View","type":"->"},{"file":"/var/www/nextcloud/apps/files/lib/Controller/ApiController.php","line":266,"function":"getDirectoryListing","class":"OC\\Files\\Node\\Folder","type":"->"},{"file":"/var/www/nextcloud/apps/files/lib/Controller/ApiController.php","line":311,"function":"getChildren","class":"OCA\\Files\\Controller\\ApiController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":200,"function":"getFolderTree","class":"OCA\\Files\\Controller\\ApiController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":114,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":161,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/ocs/v1.php","line":49,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/ocs/v2.php","line":7,"args":["/var/www/nextcloud/ocs/v1.php"],"function":"require_once"}],"File":"/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php","Line":183,"message":"OC\\Files\\Storage\\Wrapper\\Wrapper::getOwner(): Argument #1 ($path) must be of type string, null given, called in /var/www/nextcloud/lib/private/Files/View.php on line 1528","exception":[],"CustomMessage":"OC\\Files\\Storage\\Wrapper\\Wrapper::getOwner(): Argument #1 ($path) must be of type string, null given, called in /var/www/nextcloud/lib/private/Files/View.php on line 1528"},"id":"687516286fd50"}
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 at lib/private/Files/View.php line 1528 and follow the call path through lib/private/Files/Node/Folder.php line 81 and apps/files/lib/Controller/ApiController.php lines 266 and 311. Compare this with the workaround in lib/private/legacy/OC_Helper.php line 514, then reproduce an internally shared folder containing direct files. Done means the shared folder opens without the null-path TypeError.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.