Open
Description
⚠️ This issue respects the following points: ⚠️
- This is a bug, not a question or a configuration/webserver/proxy issue.
- This issue is not already reported on Github OR Nextcloud Community Forum (I've searched it).
- Nextcloud Server is up to date. See Maintenance and Release Schedule for supported versions.
- I agree to follow Nextcloud's Code of Conduct.
Bug description
When Nextcloud is configured with an external storage as Amazon S3 endpoint, with host set to GCS as S3 compatibility mode, then it is not possible to use Nextcloud GUI to delete a folder, whether it is empty or not. But it is possible to delete files.
Steps to reproduce
- Configure Google GCS side as S3 compatibility mode
- Create a bucket with Fine-grained ACL
- Configure in Nextcloud an external storage for GCS as Amazon S3 endpoint
- Create a folder in this mount using Nextcloud, and upload a small file
- Delete the folder, it results in the error in GUI
"Delete permanently" failed on some elements
- Looking at server logs (see nextcloud server logs for full json log below):```
AWS HTTP error: Client error:POST https://storage.googleapis.com/REDACTED?delete
resulted in a `400 Bad Request` response:\nNotImplemented
A header or query you provided requeste (truncated...)\n NotImplemented (client): A header or query you provided requested a function that is not implemented.
### Expected behavior
It should be possible to remove a folder.
### Nextcloud Server version
30
### Operating system
Other
### PHP engine version
PHP 8.2
### Web server
Nginx
### Database engine version
MariaDB
### Is this bug present after an update or on a fresh install?
Fresh Nextcloud Server install
### Are you using the Nextcloud Server Encryption module?
Encryption is Disabled
### What user-backends are you using?
- [x] Default user-backend _(database)_
- [x] LDAP/ Active Directory
- [ ] SSO - SAML
- [ ] Other
### Configuration report
```json
{
"system": {
"htaccess.RewriteBase": "\/",
"memcache.local": "\\OC\\Memcache\\APCu",
"apps_paths": [
{
"path": "\/var\/www\/html\/apps",
"url": "\/apps",
"writable": false
},
{
"path": "\/var\/www\/html\/custom_apps",
"url": "\/custom_apps",
"writable": true
}
],
"debug": true,
"check_data_directory_permissions": false,
"trusted_proxies": "***REMOVED SENSITIVE VALUE***",
"forwarded_for_headers": [
"HTTP_X_FORWARDED_FOR"
],
"skeletondirectory": "\/dev\/null",
"memcache.distributed": "\\OC\\Memcache\\Redis",
"memcache.locking": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"password": "***REMOVED SENSITIVE VALUE***",
"port": 6379
},
"upgrade.disable-web": true,
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": "***REMOVED SENSITIVE VALUE***"
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"dbtype": "mysql",
"version": "30.0.6.2",
"overwrite.cli.url": "http:\/\/localhost",
"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***",
"ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory",
"filelocking.enabled": false
}
}
List of activated Apps
Enabled:
- activity: 3.0.0
- bruteforcesettings: 3.0.0
- cloud_federation_api: 1.13.0
- comments: 1.20.1
- dav: 1.31.1
- federatedfilesharing: 1.20.0
- files: 2.2.0
- files_downloadlimit: 3.0.0
- files_external: 1.22.0
- files_pdfviewer: 3.0.0
- files_sharing: 1.22.0
- logreader: 3.0.0
- lookup_server_connector: 1.18.0
- notifications: 3.0.0
- oauth2: 1.18.1
- password_policy: 2.0.0
- provisioning_api: 1.20.0
- serverinfo: 2.0.0
- settings: 1.13.0
- support: 2.0.0
- survey_client: 2.0.0
- systemtags: 1.20.0
- text: 4.1.0
- theming: 2.6.0
- twofactor_backupcodes: 1.19.0
- updatenotification: 1.20.0
- user_ldap: 1.21.0
- viewer: 3.0.0
- workflowengine: 2.12.0
Enabled:
- activity: 3.0.0
- bruteforcesettings: 3.0.0
- cloud_federation_api: 1.13.0
- comments: 1.20.1
- dav: 1.31.1
- federatedfilesharing: 1.20.0
- files: 2.2.0
- files_downloadlimit: 3.0.0
- files_external: 1.22.0
- files_pdfviewer: 3.0.0
- files_sharing: 1.22.0
- logreader: 3.0.0
- lookup_server_connector: 1.18.0
- notifications: 3.0.0
- oauth2: 1.18.1
- password_policy: 2.0.0
- provisioning_api: 1.20.0
- serverinfo: 2.0.0
- settings: 1.13.0
- support: 2.0.0
- survey_client: 2.0.0
- systemtags: 1.20.0
- text: 4.1.0
- theming: 2.6.0
- twofactor_backupcodes: 1.19.0
- updatenotification: 1.20.0
- user_ldap: 1.21.0
- viewer: 3.0.0
- workflowengine: 2.12.0Disabled:
- admin_audit: 1.20.0
- app_api: 4.0.6 (installed 4.0.6)
- circles: 30.0.0 (installed 30.0.0)
- contactsinteraction: 1.11.0 (installed 1.11.0)
- dashboard: 7.10.0 (installed 7.10.0)
- encryption: 2.18.0
- federation: 1.20.0 (installed 1.20.0)
- files_reminders: 1.3.0 (installed 1.3.0)
- files_trashbin: 1.20.1 (installed 1.20.1)
- files_versions: 1.23.0 (installed 1.23.0)
- firstrunwizard: 3.0.0 (installed 3.0.0)
- nextcloud_announcements: 2.0.0 (installed 2.0.0)
- photos: 3.0.2 (installed 3.0.2)
- privacy: 2.0.0 (installed 2.0.0)
- recommendations: 3.0.0 (installed 3.0.0)
- related_resources: 1.5.0 (installed 1.5.0)
- sharebymail: 1.20.0 (installed 1.20.0)
- suspicious_login: 8.0.0
- twofactor_nextcloud_notification: 4.0.0
- twofactor_totp: 12.0.0-dev
- user_status: 1.10.0 (installed 1.10.0)
- weather_status: 1.10.0 (installed 1.10.0)
- webhook_listeners: 1.1.0-dev (installed 1.1.0-dev)
Nextcloud Signing status
No errors have been found.
Nextcloud Logs
{
"reqId":"Nm9xSP0wsMjMoh014V7h",
"level":3,
"time":"2025-06-17T15:43:45+00:00",
"remoteAddr":"24.206.123.184",
"user":"admin",
"app":"files_external",
"method":"DELETE",
"url":"/remote.php/dav/files/admin/REDACTED/testtodel-template-tsqmp",
"message":"Error executing \"DeleteObjects\" on \"https://storage.googleapis.com/REDACTED?delete\"; AWS HTTP error: Client error: `POST https://storage.googleapis.com/REDACTED?delete` resulted in a `400 Bad Request` response:\n<?xml version='1.0' encoding='UTF-8'?><Error><Code>NotImplemented</Code><Message>A header or query you provided requeste (truncated...)\n NotImplemented (client): A header or query you provided requested a function that is not implemented. - <?xml version='1.0' encoding='UTF-8'?><Error><Code>NotImplemented</Code><Message>A header or query you provided requested a function that is not implemented.</Message><Details>POST ?delete is not implemented for objects.</Details></Error>",
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0",
"version":"30.0.6.2",
"exception":{
"Exception":"Aws\\S3\\Exception\\S3Exception",
"Message":"Error executing \"DeleteObjects\" on \"https://storage.googleapis.com/REDACTED?delete\"; AWS HTTP error: Client error: `POST https://storage.googleapis.com/REDACTED?delete` resulted in a `400 Bad Request` response:\n<?xml version='1.0' encoding='UTF-8'?><Error><Code>NotImplemented</Code><Message>A header or query you provided requeste (truncated...)\n NotImplemented (client): A header or query you provided requested a function that is not implemented. - <?xml version='1.0' encoding='UTF-8'?><Error><Code>NotImplemented</Code><Message>A header or query you provided requested a function that is not implemented.</Message><Details>POST ?delete is not implemented for objects.</Details></Error>",
"Code":0,
"Trace":[
{
"file":"/var/www/html/3rdparty/aws/aws-sdk-php/src/WrappedHttpHandler.php",
"line":97,
"function":"parseError",
"class":"Aws\\WrappedHttpHandler",
"type":"->",
"args":[
"*** sensitive parameters replaced ***",
{
"__class__":"GuzzleHttp\\Psr7\\Request"
},
{
"__class__":"Aws\\Command"
},
[
]
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":209,
"function":"Aws\\{closure}",
"class":"Aws\\WrappedHttpHandler",
"type":"->",
"args":[
"*** sensitive parameters replaced ***"
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":174,
"function":"callHandler",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"::",
"args":[
2,
"*** sensitive parameters replaced ***",
null
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/RejectedPromise.php",
"line":49,
"function":"GuzzleHttp\\Promise\\{closure}",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"::",
"args":[
"*** sensitive parameters replaced ***"
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/TaskQueue.php",
"line":52,
"function":"GuzzleHttp\\Promise\\{closure}",
"class":"GuzzleHttp\\Promise\\RejectedPromise",
"type":"::",
"args":[
"*** sensitive parameters replaced ***"
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
"line":163,
"function":"run",
"class":"GuzzleHttp\\Promise\\TaskQueue",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
"line":189,
"function":"tick",
"class":"GuzzleHttp\\Handler\\CurlMultiHandler",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":251,
"function":"execute",
"class":"GuzzleHttp\\Handler\\CurlMultiHandler",
"type":"->",
"args":[
true
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":227,
"function":"invokeWaitFn",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":272,
"function":"waitIfPending",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":229,
"function":"invokeWaitList",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":272,
"function":"waitIfPending",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":229,
"function":"invokeWaitList",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":69,
"function":"waitIfPending",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
"line":58,
"function":"wait",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
"line":86,
"function":"execute",
"class":"Aws\\AwsClient",
"type":"->",
"args":[
{
"__class__":"Aws\\Command"
}
]
},
{
"file":"/var/www/html/apps/files_external/lib/Lib/Storage/AmazonS3.php",
"line":281,
"function":"__call",
"class":"Aws\\AwsClient",
"type":"->",
"args":[
"deleteObjects",
[
{
"Bucket":"REDACTED",
"Delete":{
"Objects":[
{
"Key":"testtodel-template-tsqmp/AA/",
"LastModified":{
"__class__":"Aws\\Api\\DateTimeResult",
"__properties__":"Encoding skipped as the maximum nesting level was reached"
},
"ETag":"\"d41d8cd98f00b204e9800998ecf8427e\"",
"Size":"0"
},
{
"Key":"testtodel-template-tsqmp/mock/emri_config.json",
"LastModified":{
"__class__":"Aws\\Api\\DateTimeResult",
"__properties__":"Encoding skipped as the maximum nesting level was reached"
},
"ETag":"\"3c70f6c1a222738d6cde9fb5d77df14b\"",
"Size":"305"
},
{
"Key":"testtodel-template-tsqmp/mock/gb_config.json",
"LastModified":{
"__class__":"Aws\\Api\\DateTimeResult",
"__properties__":"Encoding skipped as the maximum nesting level was reached"
},
"ETag":"\"8220939d579c9d94d3a5387f61d4fd99\"",
"Size":"634"
},
{
"Key":"testtodel-template-tsqmp/mock/mbhb_config.json",
"LastModified":{
"__class__":"Aws\\Api\\DateTimeResult",
"__properties__":"Encoding skipped as the maximum nesting level was reached"
},
"ETag":"\"370791267c0c5aa1ffda8bf9187cc336\"",
"Size":"229"
}
]
}
}
]
]
},
{
"file":"/var/www/html/apps/files_external/lib/Lib/Storage/AmazonS3.php",
"line":256,
"function":"batchDelete",
"class":"OCA\\Files_External\\Lib\\Storage\\AmazonS3",
"type":"->",
"args":[
"testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php",
"line":79,
"function":"rmdir",
"class":"OCA\\Files_External\\Lib\\Storage\\AmazonS3",
"type":"->",
"args":[
"testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php",
"line":92,
"function":"rmdir",
"class":"OC\\Files\\Storage\\Wrapper\\Wrapper",
"type":"->",
"args":[
"testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/lib/private/Files/View.php",
"line":1203,
"function":"rmdir",
"class":"OC\\Files\\Storage\\Wrapper\\Availability",
"type":"->",
"args":[
"testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/lib/private/Files/View.php",
"line":291,
"function":"basicOperation",
"class":"OC\\Files\\View",
"type":"->",
"args":[
"rmdir",
"/REDACTED/testtodel-template-tsqmp",
[
"delete"
]
]
},
{
"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php",
"line":271,
"function":"rmdir",
"class":"OC\\Files\\View",
"type":"->",
"args":[
"/REDACTED/testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Tree.php",
"line":197,
"function":"delete",
"class":"OCA\\DAV\\Connector\\Sabre\\Directory",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
"line":281,
"function":"delete",
"class":"Sabre\\DAV\\Tree",
"type":"->",
"args":[
"files/admin/REDACTED/testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line":89,
"function":"httpDelete",
"class":"Sabre\\DAV\\CorePlugin",
"type":"->",
"args":[
{
"__class__":"Sabre\\HTTP\\Request"
},
{
"__class__":"Sabre\\HTTP\\Response"
}
]
},
{
"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line":472,
"function":"emit",
"class":"Sabre\\DAV\\Server",
"type":"->",
"args":[
"method:DELETE",
[
{
"__class__":"Sabre\\HTTP\\Request"
},
{
"__class__":"Sabre\\HTTP\\Response"
}
]
]
},
{
"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Server.php",
"line":43,
"function":"invokeMethod",
"class":"Sabre\\DAV\\Server",
"type":"->",
"args":[
{
"__class__":"Sabre\\HTTP\\Request"
},
{
"__class__":"Sabre\\HTTP\\Response"
}
]
},
{
"file":"/var/www/html/apps/dav/lib/Server.php",
"line":371,
"function":"start",
"class":"OCA\\DAV\\Connector\\Sabre\\Server",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/apps/dav/appinfo/v2/remote.php",
"line":19,
"function":"exec",
"class":"OCA\\DAV\\Server",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/remote.php",
"line":146,
"args":[
"/var/www/html/apps/dav/appinfo/v2/remote.php"
],
"function":"require_once"
}
],
"File":"/var/www/html/3rdparty/aws/aws-sdk-php/src/WrappedHttpHandler.php",
"Line":196,
"Previous":{
"Exception":"GuzzleHttp\\Exception\\ClientException",
"Message":"Client error: `POST https://storage.googleapis.com/REDACTED?delete` resulted in a `400 Bad Request` response:\n<?xml version='1.0' encoding='UTF-8'?><Error><Code>NotImplemented</Code><Message>A header or query you provided requeste (truncated...)\n",
"Code":400,
"Trace":[
{
"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
"line":72,
"function":"create",
"class":"GuzzleHttp\\Exception\\RequestException",
"type":"::",
"args":[
"*** sensitive parameters replaced ***"
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":209,
"function":"GuzzleHttp\\{closure}",
"class":"GuzzleHttp\\Middleware",
"type":"::",
"args":[
"*** sensitive parameters replaced ***"
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":158,
"function":"callHandler",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"::",
"args":[
1,
"*** sensitive parameters replaced ***",
"*** sensitive parameters replaced ***"
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/TaskQueue.php",
"line":52,
"function":"GuzzleHttp\\Promise\\{closure}",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"::",
"args":[
"*** sensitive parameters replaced ***"
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
"line":163,
"function":"run",
"class":"GuzzleHttp\\Promise\\TaskQueue",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
"line":189,
"function":"tick",
"class":"GuzzleHttp\\Handler\\CurlMultiHandler",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":251,
"function":"execute",
"class":"GuzzleHttp\\Handler\\CurlMultiHandler",
"type":"->",
"args":[
true
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":227,
"function":"invokeWaitFn",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":272,
"function":"waitIfPending",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":229,
"function":"invokeWaitList",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":272,
"function":"waitIfPending",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":229,
"function":"invokeWaitList",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php",
"line":69,
"function":"waitIfPending",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
"line":58,
"function":"wait",
"class":"GuzzleHttp\\Promise\\Promise",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
"line":86,
"function":"execute",
"class":"Aws\\AwsClient",
"type":"->",
"args":[
{
"__class__":"Aws\\Command"
}
]
},
{
"file":"/var/www/html/apps/files_external/lib/Lib/Storage/AmazonS3.php",
"line":281,
"function":"__call",
"class":"Aws\\AwsClient",
"type":"->",
"args":[
"deleteObjects",
[
{
"Bucket":"REDACTED",
"Delete":{
"Objects":[
{
"Key":"testtodel-template-tsqmp/AA/",
"LastModified":{
"__class__":"Aws\\Api\\DateTimeResult",
"__properties__":"Encoding skipped as the maximum nesting level was reached"
},
"ETag":"\"d41d8cd98f00b204e9800998ecf8427e\"",
"Size":"0"
},
{
"Key":"testtodel-template-tsqmp/mock/emri_config.json",
"LastModified":{
"__class__":"Aws\\Api\\DateTimeResult",
"__properties__":"Encoding skipped as the maximum nesting level was reached"
},
"ETag":"\"3c70f6c1a222738d6cde9fb5d77df14b\"",
"Size":"305"
},
{
"Key":"testtodel-template-tsqmp/mock/gb_config.json",
"LastModified":{
"__class__":"Aws\\Api\\DateTimeResult",
"__properties__":"Encoding skipped as the maximum nesting level was reached"
},
"ETag":"\"8220939d579c9d94d3a5387f61d4fd99\"",
"Size":"634"
},
{
"Key":"testtodel-template-tsqmp/mock/mbhb_config.json",
"LastModified":{
"__class__":"Aws\\Api\\DateTimeResult",
"__properties__":"Encoding skipped as the maximum nesting level was reached"
},
"ETag":"\"370791267c0c5aa1ffda8bf9187cc336\"",
"Size":"229"
}
]
}
}
]
]
},
{
"file":"/var/www/html/apps/files_external/lib/Lib/Storage/AmazonS3.php",
"line":256,
"function":"batchDelete",
"class":"OCA\\Files_External\\Lib\\Storage\\AmazonS3",
"type":"->",
"args":[
"testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php",
"line":79,
"function":"rmdir",
"class":"OCA\\Files_External\\Lib\\Storage\\AmazonS3",
"type":"->",
"args":[
"testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php",
"line":92,
"function":"rmdir",
"class":"OC\\Files\\Storage\\Wrapper\\Wrapper",
"type":"->",
"args":[
"testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/lib/private/Files/View.php",
"line":1203,
"function":"rmdir",
"class":"OC\\Files\\Storage\\Wrapper\\Availability",
"type":"->",
"args":[
"testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/lib/private/Files/View.php",
"line":291,
"function":"basicOperation",
"class":"OC\\Files\\View",
"type":"->",
"args":[
"rmdir",
"/REDACTED/testtodel-template-tsqmp",
[
"delete"
]
]
},
{
"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php",
"line":271,
"function":"rmdir",
"class":"OC\\Files\\View",
"type":"->",
"args":[
"/REDACTED/testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Tree.php",
"line":197,
"function":"delete",
"class":"OCA\\DAV\\Connector\\Sabre\\Directory",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
"line":281,
"function":"delete",
"class":"Sabre\\DAV\\Tree",
"type":"->",
"args":[
"files/admin/REDACTED/testtodel-template-tsqmp"
]
},
{
"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
"line":89,
"function":"httpDelete",
"class":"Sabre\\DAV\\CorePlugin",
"type":"->",
"args":[
{
"__class__":"Sabre\\HTTP\\Request"
},
{
"__class__":"Sabre\\HTTP\\Response"
}
]
},
{
"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
"line":472,
"function":"emit",
"class":"Sabre\\DAV\\Server",
"type":"->",
"args":[
"method:DELETE",
[
{
"__class__":"Sabre\\HTTP\\Request"
},
{
"__class__":"Sabre\\HTTP\\Response"
}
]
]
},
{
"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Server.php",
"line":43,
"function":"invokeMethod",
"class":"Sabre\\DAV\\Server",
"type":"->",
"args":[
{
"__class__":"Sabre\\HTTP\\Request"
},
{
"__class__":"Sabre\\HTTP\\Response"
}
]
},
{
"file":"/var/www/html/apps/dav/lib/Server.php",
"line":371,
"function":"start",
"class":"OCA\\DAV\\Connector\\Sabre\\Server",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/apps/dav/appinfo/v2/remote.php",
"line":19,
"function":"exec",
"class":"OCA\\DAV\\Server",
"type":"->",
"args":[
]
},
{
"file":"/var/www/html/remote.php",
"line":146,
"args":[
"/var/www/html/apps/dav/appinfo/v2/remote.php"
],
"function":"require_once"
}
],
"File":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php",
"Line":113
},
"message":"Error executing \"DeleteObjects\" on \"https://storage.googleapis.com/REDACTED?delete\"; AWS HTTP error: Client error: `POST https://storage.googleapis.com/REDACTED?delete` resulted in a `400 Bad Request` response:\n<?xml version='1.0' encoding='UTF-8'?><Error><Code>NotImplemented</Code><Message>A header or query you provided requeste (truncated...)\n NotImplemented (client): A header or query you provided requested a function that is not implemented. - <?xml version='1.0' encoding='UTF-8'?><Error><Code>NotImplemented</Code><Message>A header or query you provided requested a function that is not implemented.</Message><Details>POST ?delete is not implemented for objects.</Details></Error>",
"exception":[
],
"CustomMessage":"Error executing \"DeleteObjects\" on \"https://storage.googleapis.com/REDACTED?delete\"; AWS HTTP error: Client error: `POST https://storage.googleapis.com/REDACTED?delete` resulted in a `400 Bad Request` response:\n<?xml version='1.0' encoding='UTF-8'?><Error><Code>NotImplemented</Code><Message>A header or query you provided requeste (truncated...)\n NotImplemented (client): A header or query you provided requested a function that is not implemented. - <?xml version='1.0' encoding='UTF-8'?><Error><Code>NotImplemented</Code><Message>A header or query you provided requested a function that is not implemented.</Message><Details>POST ?delete is not implemented for objects.</Details></Error>"
},
"id":"68518d599110d"
}
Additional info
No response