S3 external storage access successes and failures

Support intro

Sorry to hear you’re facing problems. :slightly_frowning_face:

The community help forum (help.nextcloud.com) is for home and non-enterprise users. Support is provided by other community members on a best effort / “as available” basis. All of those responding are volunteering their time to help you.

If you’re using Nextcloud in a business/critical setting, paid and SLA-based support services can be accessed via portal.nextcloud.com where Nextcloud engineers can help ensure your business keeps running smoothly.

Getting help

In order to help you as efficiently (and quickly!) as possible, please fill in as much of the below requested information as you can.

Before clicking submit: Please check if your query is already addressed via the following resources:

(Utilizing these existing resources is typically faster. It also helps reduce the load on our generous volunteers while elevating the signal to noise ratio of the forums otherwise arising from the same queries being posted repeatedly).

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can. :heart:

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • 32.0.0
  • Operating system and version (e.g., Ubuntu 24.04):
    • AlmaLinux 8.10
  • Web server and version (e.g, Apache 2.4.25):
    • 2.4.63
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • replace me
  • PHP version (e.g, 8.3):
    • 8.3.22
  • Is this the first time you’ve seen this error? (Yes / No):
    • Yes
  • When did this problem seem to first start?
    • As soon as I attempted to connect to S3 buckets as external storage
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • Originally a softaculous install - years back
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No

Summary of the issue you are facing:

Ran into UI limitation to attach external storage. It requires but will not validate admin’s password. This forces use of occ cli which has limitations and variance according to s3 vendor. But ultimately after solving for those issues, I was never able to get the s3 buckets to read/get/download or share files. But the volumes show up and I can move files onto the external storage buckets.

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

  1. Go to Apps and install the external storage app

  2. Configure an s3 bucket with bucket name, region, endpoint, key and application/secret key. Have done this with both Backblaze and Wasabi.

  3. In administration settings, go to external storage and fill form. Don’t waste a lot of time here trying to get it right. Attempt to save your form edits. It requests password. Upon entering it errors: wrong password (bug - dead end)

  4. Since UI doesn’t work, need to utilize occ command for occ file_external to set up the bucket access.

  5. Sample occ syntax: php occ files_external:create \EXTERNAL amazons3 amazons3::accesskey -c bucket=bblaze-vol -c use_path_style=true -c region=us-east-005 -c hostname=s3.us-east-005.backblazeb2.com -c key=################### -c secret=#####################

  6. Go back to Nextcloud UI. Storage should show up in the UI form for External Storage (administartion section) as well as in the External Storage option under personal settings. Viewing the form under admistration settings should indicate where an error is if one occurs. Ideally at this point, you have a new folder accessible from Files.

  7. Copy (don’t move) a file from primary storage to the new external storage volume - or upload from local storage. It should move to the volume with no problem.

  8. Attempt to open the file. It fails. Try to download the file. It fails.

  9. Access the files from the s3 web UI skipping Nextcloud. The files are there, can be downloaded and are not corrupted.

  10. Try to SHARE the file. There is no share icon. The share function is selectable in the UI, but as before, requires password that won’t validate. The CLI occ command of: php occ files_external:config [mount id #] enable_sharing “true”. And if one views the external_files:list, that mount reflects: enable_sharing “1” suggesting that this parameter was altered and set. BUT, there still is no sharing option once in files.

Log entries

Nextcloud

TWO (long) LINES FROM LOG

/Files/ObjectStore/S3ObjectTrait.php","Line":77,"message":"Failed to read object CX/Gartner Cust Improvement drives growth & retension.pdf","exception":{},"CustomMessage":"Failed to read object CX/Gartner Cust Improvement drives growth & retension.pdf"}}
{"reqId":"aPfHtf6Z_nbiaWJgWOnWOAAAAAc","level":3,"time":"2025-10-21T17:49:42+00:00","remoteAddr":"67.80.148.183","user":"jhenkin","app":"webdav","method":"GET","url":"/Apps/nc/remote.php/dav/files/jhenkin/GGCWAS/CX/Gartner%20Cust%20Improvement%20drives%20growth%20%26%20retension.pdf","message":"Could not open file: GGCWAS/CX/Gartner Cust Improvement drives growth & retension.pdf, file does seem to exist","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36","version":"32.0.0.13","exception":{"Exception":"Sabre\\DAV\\Exception\\ServiceUnavailable","Message":"Could not open file: GGCWAS/CX/Gartner Cust Improvement drives growth & retension.pdf, file does seem to exist","Code":0,"Trace":[{"file":"/home/goldeng1/public_html/Apps/nc/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":85,"function":"get","class":"OCA\\DAV\\Connector\\Sabre\\File","type":"->","args":[]},{"file":"/home/goldeng1/public_html/Apps/nc/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpGet","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/home/goldeng1/public_html/Apps/nc/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["method:GET",[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"/home/goldeng1/public_html/Apps/nc/apps/dav/lib/Connector/Sabre/Server.php","line":211,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/home/goldeng1/public_html/Apps/nc/apps/dav/lib/Server.php","line":424,"function":"start","class":"OCA\\DAV\\Connector\\Sabre\\Server","type":"->","args":[]},{"file":"/home/goldeng1/public_html/Apps/nc/apps/dav/appinfo/v2/remote.php","line":22,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/home/goldeng1/public_html/Apps/nc/remote.php","line":151,"args":["/home/goldeng1/public_html/Apps/nc/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/home/goldeng1/public_html/Apps/nc/apps/dav/lib/Connector/Sabre/File.php","Line":470,"message":"Cou


ld not open file: GGCWAS/CX/Gartner Cust Improvement drives growth & retension.pdf, file does seem to exist","exception":{},"CustomMessage":"Could not open file: GGCWAS/CX/Gartner Cust Improvement drives growth & retension.pdf, file does seem to exist"}}
{"reqId":"aPfKUM32RHQWIljfBoKd-wAAAAE","level":3,"time":"2025-10-21T18:00:49+00:00","remoteAddr":"67.80.148.183","user":"jhenkin","app":"no app in context","method":"GET","url":"/Apps/nc/remote.php/dav/files/jhenkin/GGCWAS/CX/Gartner%20Cust%20Improvement%20drives%20growth%20%26%20retension.pdf","message":"Uncaught exception","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36","version":"32.0.0.13","exception":{"Exception":"Sabre\\DAV\\Exception\\ServiceUnavailable","Message":"Could not open file: GGCWAS/CX/Gartner Cust Improvement drives growth & retension.pdf, file does seem to exist","Code":0,"Trace":[{"file":"/home/goldeng1/public_html/Apps/nc/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":85,"function":"get","class":"OCA\\DAV\\Connector\\Sabre\\File","type":"->","args":[]},{"file":"/home/goldeng1/public_html/Apps/nc/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpGet","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/home/goldeng1/public_html/Apps/nc/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["method:GET",[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"/home/goldeng1/public_html/Apps/nc/apps/dav/lib/Connector/Sabre/Server.php","line":211,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/home/goldeng1/public_html/Apps/nc/apps/dav/lib/Server.php","line":424,"function":"start","class":"OCA\\DAV\\Connector\\Sabre\\Server","type":"->","args":[]},{"file":"/home/goldeng1/public_html/Apps/nc/apps/dav/appinfo/v2/remote.php","line":22,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/home/goldeng1/public_html/Apps/nc/remote.php","line":151,"args":["/home/goldeng1/publ

Configuration

Nextcloud

[](javascript:top.window.close())

text/plain output.txt ( ASCII text )

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "*********consulting.com"
        ],
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "32.0.0.13",
        "overwrite.cli.url": "http:\/\/******consulting.com\/Apps\/nc",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpmode": "smtp",
        "mail_sendmailmode": "smtp",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpauthtype": "LOGIN",
        "mail_smtpauth": 1,
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "mail_smtpsecure": "tls",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "mysql.utf8mb4": true,
        "theme": "",
        "enable_previews": true,
        "s3.use_stream_wrapper": false,
        "loglevel": 1,
        "logging": "file",
        "log_type": "file",
        "logfile": "\/home\/goldeng1\/public_html\/Apps\/nc\/data\/nextcloud.log",
        "log.condition": {
            "apps": [
                "files_external",
                "files"
            ]
        },
        "app_install_overwrite": [
            "ocjobs",
            "occweb"
        ],
        "updater.release.channel": "stable",
        "twofactor_enforced": "false",
        "twofactor_enforced_groups": [],
        "twofactor_enforced_excluded_groups": [],
        "redis": {
            "timeout": "0"
        }
    }
}

Apps

[](javascript:top.window.close())

text/plain output.txt ( ASCII text )

Enabled:
  - activity: 5.0.0-dev.0
  - app_api: 32.0.0
  - bruteforcesettings: 5.0.0-dev.0
  - circles: 32.0.0
  - cloud_federation_api: 1.16.0
  - comments: 1.22.0
  - contactsinteraction: 1.13.1
  - dashboard: 7.12.0
  - dav: 1.34.2
  - federatedfilesharing: 1.22.0
  - federation: 1.22.0
  - files: 2.4.0
  - files_downloadlimit: 5.0.0-dev.0
  - files_external: 1.24.0
  - files_pdfviewer: 5.0.0-dev.0
  - files_reminders: 1.5.0
  - files_sharing: 1.24.0
  - files_trashbin: 1.22.0
  - files_versions: 1.25.0
  - firstrunwizard: 5.0.0-dev.0
  - logreader: 5.0.0-dev.0
  - lookup_server_connector: 1.20.0
  - nextcloud_announcements: 4.0.0-dev.0
  - notifications: 5.0.0-dev.0
  - oauth2: 1.20.0
  - password_policy: 4.0.0-dev.0
  - photos: 5.0.0-dev.1
  - privacy: 4.0.0-dev.0
  - profile: 1.1.0
  - provisioning_api: 1.22.0
  - recommendations: 5.0.0-dev.0
  - related_resources: 3.0.0-dev.0
  - serverinfo: 4.0.0-dev.0
  - settings: 1.15.1
  - sharebymail: 1.22.0
  - support: 4.0.0-dev.0
  - survey_client: 4.0.0-dev.0
  - systemtags: 1.22.0
  - text: 6.0.0-dev.0
  - theming: 2.7.0
  - twofactor_backupcodes: 1.21.0
  - updatenotification: 1.22.0
  - user_status: 1.12.0
  - viewer: 5.0.0-dev.0
  - weather_status: 1.12.0
  - webhook_listeners: 1.3.0
  - workflowengine: 2.14.0
Disabled:
  - admin_audit: 1.22.0
  - encryption: 2.20.0
  - suspicious_login: 10.0.0-dev.0
  - twofactor_nextcloud_notification: 6.0.0-dev.0
  - twofactor_totp: 14.0.0
  - user_ldap: 1.23.0

2 seemingly successfully installed s2 storage buckets.

No share option visible:

This is the external storage form that is not reflecting the CLI enable_sharing command.

All the other fields in this form were inserted via occ CLI, not in the web UI. The webUI requests password:

…and ALWAYS fails, despite a correct password.

Please provide the full log entry that has this in it. Possibly also the entry before it as well (if it’s for the same request ID).

In administration settings, go to external storage and fill form. Don’t waste a lot of time here trying to get it right. Attempt to save your form edits. It requests password. Upon entering it errors: wrong password (bug - dead end)

What appears in your browser inspector Console and Network tabs when this occurs?