Skip to content

[Bug]: Unexpected checksum header in multipart uploads caused by S3 default integrity change in AWS SDK for PHP >= v3.337.0 #56077

@cfiehe

Description

@cfiehe

⚠️ This issue respects the following points: ⚠️

Bug description

The new version 3.349.3 of the AWS SDK for PHP used by Nextcloud 32 causes a regression bug in the case of multipart uploads in an S3-compliant storage backend. The AWS SDK for PHP >=3.337.0 was released with changes to the S3 client that adopts new default integrity protections. Please refer to: aws/aws-sdk-php#3100

This change in the S3 client’s default settings causes a problem because multipart chunks are now being decorated with a checksum header that (some) S3-compliant storage backends reject as unexpected. I am not sure if other S3-compliant storage backends (MinIO, Garage Wasabi, …) behave in the same way, but uploads do no longer succeed with our Cloudian HyperStore.

I have made some modifications to the Nexcloud code in order to make the settings for the S3 client request_checksum_calculation and response_checksum_validation configurable when you encounter this issue. When you restore the previous default "request_checksum_calculation": "when_required" and "response_checksum_validation": "when_required" the issue is solved. I will provide a pull request as soon as possible.

Steps to reproduce

  1. Install Nextcloud 32 with an S3-compliant storage as primary backend
  2. Upload a file >= 100 MB via WebUI

Expected behavior

Uploading files with a size larger than the configured chunk size succeeds.

Nextcloud Server version

32

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.3

Web server

Apache (supported)

Database engine version

PostgreSQL

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

Upgraded to a MAJOR version (ex. 31 to 32)

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

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "nextcloud.mycompany.de",
            "nextcloud.lx.mycompany.de"
        ],
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "proxy": "int-proxy.mycompany.de:3128",
        "proxyexclude": [
            "127.0.0.0\/8",
            "localhost",
            ".mycompany.de"
        ],
        "objectstore": {
            "class": "\\OC\\Files\\ObjectStore\\S3",
            "arguments": {
                "bucket": "nextcloud-bucket",
                "concurrency": 8,
                "uploadPartSize": 268435456,
                "autocreate": false,
                "verify_bucket_exists": false,
                "key": "***REMOVED SENSITIVE VALUE***",
                "secret": "***REMOVED SENSITIVE VALUE***",
                "hostname": "s3-sb.mycompany.de",
                "port": 443,
                "use_ssl": true,
                "use_path_style": true,
                "proxy": false,
            }
        },
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "32.0.1.2",
        "overwritehost": "nextcloud.mycompany.de",
        "overwriteprotocol": "https",
        "overwrite.cli.url": "https:\/\/nextcloud.mycompany.de",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "remember_login_cookie_lifetime": 1296000,
        "session_lifetime": 86400,
        "session_keepalive": true,
        "auto_logout": true,
        "mail_smtpmode": "smtp",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "25",
        "mail_sendmailmode": "smtp",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "default_locale": "de_DE",
        "default_phone_region": "DE",
        "filelocking.enabled": true,
        "htaccess.RewriteBase": "\/",
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 6379,
            "user": "nextcloud",
            "password": "***REMOVED SENSITIVE VALUE***"
        },
        "theme": "",
        "loglevel": 0,
        "maintenance": false,
        "maintenance_window_start": 1,
        "ldapProviderFactory": "\\OCA\\User_LDAP\\LDAPProviderFactory",
        "updater.release.channel": "stable"
    }
}

List of activated Apps

Enabled:
  - activity: 5.0.0-dev.0
  - bruteforcesettings: 5.0.0-dev.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
  - groupfolders: 20.1.2
  - impersonate: 3.0.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
  - systemtags: 1.22.0
  - text: 6.0.1
  - theming: 2.7.0
  - twofactor_backupcodes: 1.21.0
  - updatenotification: 1.22.0
  - user_ldap: 1.23.0
  - user_status: 1.12.0
  - viewer: 5.0.0-dev.0
  - webhook_listeners: 1.3.0
  - workflowengine: 2.14.0
Disabled:
  - admin_audit: 1.22.0
  - app_api: 32.0.0 (installed 32.0.0)
  - circles: 32.0.0 (installed 30.0.0-dev)
  - encryption: 2.20.0
  - files_antivirus: 6.1.0 (installed 6.1.0)
  - files_retention: 3.0.0 (installed 3.0.0)
  - files_rightclick: 0.15.1 (installed 1.6.0)
  - previewgenerator: 5.10.0 (installed 5.10.0)
  - survey_client: 4.0.0-dev.0 (installed 2.0.0)
  - suspicious_login: 10.0.0-dev.0
  - twofactor_nextcloud_notification: 6.0.0-dev.0
  - twofactor_totp: 14.0.0
  - weather_status: 1.12.0 (installed 1.1.0)

Nextcloud Signing status

No errors have been found.

Nextcloud Logs

{
  "reqId": "mTF2WuMlr2PkbCABPJL9",
  "level": 3,
  "time": "2025-10-28T14:35:27+00:00",
  "remoteAddr": "10.2.1.112",
  "user": "58907C95-A985-4B53-9478-8D88F3E38943",
  "app": "webdav",
  "method": "PUT",
  "url": "/remote.php/dav/uploads/58907C95-A985-4B53-9478-8D88F3E38943/web-file-upload-485f67f60a09b8bc/3",
  "message": "Error executing \"UploadPart\" on \"https://s3.mycompany.de/nextcloud-bucket/urn%3Aoid%3A421782?partNumber=3&uploadId=MDA5MDMzNDgxNzYxNjYyMTI1NTY4\"; AWS HTTP error: Client error: `PUT https://s3.mycompany.de/nextcloud-bucket/urn%3Aoid%3A421782?partNumber=3&uploadId=MDA5MDMzNDgxNzYxNjYyMTI1NTY4` resulted in a `400 Bad Request` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?><Error><Code>InvalidRequest</Code><Message>Checksum Type mismatch occurred, expect (truncated...)\n InvalidRequest (client): Checksum Type mismatch occurred, expected checksum Type: null, actual checksum Type: crc32 - <?xml version=\"1.0\" encoding=\"UTF-8\"?><Error><Code>InvalidRequest</Code><Message>Checksum Type mismatch occurred, expected checksum Type: null, actual checksum Type: crc32</Message><RequestId>17af8fa4-3ca9-1fe4-b037-b8cef600d416</RequestId><HostId>3e498cb178ec409b8114b541839808e4</HostId></Error>",
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0",
  "version": "32.0.1.2",
  "exception": {
    "Exception": "Aws\\S3\\Exception\\S3Exception",
    "Message": "Error executing \"UploadPart\" on \"https://s3.mycompany.de/nextcloud-bucket/urn%3Aoid%3A421782?partNumber=3&uploadId=MDA5MDMzNDgxNzYxNjYyMTI1NTY4\"; AWS HTTP error: Client error: `PUT https://s3.mycompany.de/nextcloud-bucket/urn%3Aoid%3A421782?partNumber=3&uploadId=MDA5MDMzNDgxNzYxNjYyMTI1NTY4` resulted in a `400 Bad Request` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?><Error><Code>InvalidRequest</Code><Message>Checksum Type mismatch occurred, expect (truncated...)\n InvalidRequest (client): Checksum Type mismatch occurred, expected checksum Type: null, actual checksum Type: crc32 - <?xml version=\"1.0\" encoding=\"UTF-8\"?><Error><Code>InvalidRequest</Code><Message>Checksum Type mismatch occurred, expected checksum Type: null, actual checksum Type: crc32</Message><RequestId>17af8fa4-3ca9-1fe4-b037-b8cef600d416</RequestId><HostId>3e498cb178ec409b8114b541839808e4</HostId></Error>",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/WrappedHttpHandler.php",
        "line": 97,
        "function": "parseError",
        "class": "Aws\\WrappedHttpHandler",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 209,
        "function": "Aws\\{closure}",
        "class": "Aws\\WrappedHttpHandler",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 174,
        "function": "callHandler",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "::"
      },
      {
        "file": "/var/www/html/nextcloud/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/nextcloud/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/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
        "line": 167,
        "function": "run",
        "class": "GuzzleHttp\\Promise\\TaskQueue",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
        "line": 206,
        "function": "tick",
        "class": "GuzzleHttp\\Handler\\CurlMultiHandler",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 251,
        "function": "execute",
        "class": "GuzzleHttp\\Handler\\CurlMultiHandler",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 227,
        "function": "invokeWaitFn",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 272,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 229,
        "function": "invokeWaitList",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 272,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 229,
        "function": "invokeWaitList",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
        "line": 69,
        "function": "waitIfPending",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
        "line": 58,
        "function": "wait",
        "class": "GuzzleHttp\\Promise\\Promise",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
        "line": 86,
        "function": "execute",
        "class": "Aws\\AwsClient",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Files/ObjectStore/S3.php",
        "line": 46,
        "function": "__call",
        "class": "Aws\\AwsClient",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
        "line": 761,
        "function": "uploadMultipartPart",
        "class": "OC\\Files\\ObjectStore\\S3",
        "type": "->"
      },
      {
        "function": "putChunkedWritePart",
        "class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
        "line": 258,
        "function": "call_user_func_array"
      },
      {
        "function": "__call",
        "class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
        "line": 258,
        "function": "call_user_func_array"
      },
      {
        "file": "/var/www/html/nextcloud/apps/dav/lib/Upload/ChunkingV2Plugin.php",
        "line": 166,
        "function": "__call",
        "class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
        "line": 89,
        "function": "beforePut",
        "class": "OCA\\DAV\\Upload\\ChunkingV2Plugin",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 456,
        "function": "emit",
        "class": "Sabre\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/apps/dav/lib/Connector/Sabre/Server.php",
        "line": 211,
        "function": "invokeMethod",
        "class": "Sabre\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/apps/dav/lib/Server.php",
        "line": 424,
        "function": "start",
        "class": "OCA\\DAV\\Connector\\Sabre\\Server",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/apps/dav/appinfo/v2/remote.php",
        "line": 22,
        "function": "exec",
        "class": "OCA\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/var/www/html/nextcloud/remote.php",
        "line": 151,
        "args": [
          "/var/www/html/nextcloud/apps/dav/appinfo/v2/remote.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/WrappedHttpHandler.php",
    "Line": 196,
    "Previous": {
      "Exception": "GuzzleHttp\\Exception\\ClientException",
      "Message": "Client error: `PUT https://s3.mycompany.de/nextcloud-bucket/urn%3Aoid%3A421782?partNumber=3&uploadId=MDA5MDMzNDgxNzYxNjYyMTI1NTY4` resulted in a `400 Bad Request` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?><Error><Code>InvalidRequest</Code><Message>Checksum Type mismatch occurred, expect (truncated...)\n",
      "Code": 400,
      "Trace": [
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
          "line": 72,
          "function": "create",
          "class": "GuzzleHttp\\Exception\\RequestException",
          "type": "::",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
          "line": 209,
          "function": "GuzzleHttp\\{closure}",
          "class": "GuzzleHttp\\Middleware",
          "type": "::",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
          "line": 158,
          "function": "callHandler",
          "class": "GuzzleHttp\\Promise\\Promise",
          "type": "::"
        },
        {
          "file": "/var/www/html/nextcloud/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/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
          "line": 167,
          "function": "run",
          "class": "GuzzleHttp\\Promise\\TaskQueue",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
          "line": 206,
          "function": "tick",
          "class": "GuzzleHttp\\Handler\\CurlMultiHandler",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
          "line": 251,
          "function": "execute",
          "class": "GuzzleHttp\\Handler\\CurlMultiHandler",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
          "line": 227,
          "function": "invokeWaitFn",
          "class": "GuzzleHttp\\Promise\\Promise",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
          "line": 272,
          "function": "waitIfPending",
          "class": "GuzzleHttp\\Promise\\Promise",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
          "line": 229,
          "function": "invokeWaitList",
          "class": "GuzzleHttp\\Promise\\Promise",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
          "line": 272,
          "function": "waitIfPending",
          "class": "GuzzleHttp\\Promise\\Promise",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
          "line": 229,
          "function": "invokeWaitList",
          "class": "GuzzleHttp\\Promise\\Promise",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
          "line": 69,
          "function": "waitIfPending",
          "class": "GuzzleHttp\\Promise\\Promise",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
          "line": 58,
          "function": "wait",
          "class": "GuzzleHttp\\Promise\\Promise",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
          "line": 86,
          "function": "execute",
          "class": "Aws\\AwsClient",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/lib/private/Files/ObjectStore/S3.php",
          "line": 46,
          "function": "__call",
          "class": "Aws\\AwsClient",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
          "line": 761,
          "function": "uploadMultipartPart",
          "class": "OC\\Files\\ObjectStore\\S3",
          "type": "->"
        },
        {
          "function": "putChunkedWritePart",
          "class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
          "line": 258,
          "function": "call_user_func_array"
        },
        {
          "function": "__call",
          "class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
          "line": 258,
          "function": "call_user_func_array"
        },
        {
          "file": "/var/www/html/nextcloud/apps/dav/lib/Upload/ChunkingV2Plugin.php",
          "line": 166,
          "function": "__call",
          "class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
          "line": 89,
          "function": "beforePut",
          "class": "OCA\\DAV\\Upload\\ChunkingV2Plugin",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php",
          "line": 456,
          "function": "emit",
          "class": "Sabre\\DAV\\Server",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/apps/dav/lib/Connector/Sabre/Server.php",
          "line": 211,
          "function": "invokeMethod",
          "class": "Sabre\\DAV\\Server",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/apps/dav/lib/Server.php",
          "line": 424,
          "function": "start",
          "class": "OCA\\DAV\\Connector\\Sabre\\Server",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/apps/dav/appinfo/v2/remote.php",
          "line": 22,
          "function": "exec",
          "class": "OCA\\DAV\\Server",
          "type": "->"
        },
        {
          "file": "/var/www/html/nextcloud/remote.php",
          "line": 151,
          "args": [
            "/var/www/html/nextcloud/apps/dav/appinfo/v2/remote.php"
          ],
          "function": "require_once"
        }
      ],
      "File": "/var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php",
      "Line": 111
    },
    "message": "Error executing \"UploadPart\" on \"https://s3.mycompany.de/nextcloud-bucket/urn%3Aoid%3A421782?partNumber=3&uploadId=MDA5MDMzNDgxNzYxNjYyMTI1NTY4\"; AWS HTTP error: Client error: `PUT https://s3.mycompany.de/nextcloud-bucket/urn%3Aoid%3A421782?partNumber=3&uploadId=MDA5MDMzNDgxNzYxNjYyMTI1NTY4` resulted in a `400 Bad Request` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?><Error><Code>InvalidRequest</Code><Message>Checksum Type mismatch occurred, expect (truncated...)\n InvalidRequest (client): Checksum Type mismatch occurred, expected checksum Type: null, actual checksum Type: crc32 - <?xml version=\"1.0\" encoding=\"UTF-8\"?><Error><Code>InvalidRequest</Code><Message>Checksum Type mismatch occurred, expected checksum Type: null, actual checksum Type: crc32</Message><RequestId>17af8fa4-3ca9-1fe4-b037-b8cef600d416</RequestId><HostId>3e498cb178ec409b8114b541839808e4</HostId></Error>",
    "exception": {},
    "CustomMessage": "Error executing \"UploadPart\" on \"https://s3.mycompany.de/nextcloud-bucket/urn%3Aoid%3A421782?partNumber=3&uploadId=MDA5MDMzNDgxNzYxNjYyMTI1NTY4\"; AWS HTTP error: Client error: `PUT https://s3.mycompany.de/nextcloud-bucket/urn%3Aoid%3A421782?partNumber=3&uploadId=MDA5MDMzNDgxNzYxNjYyMTI1NTY4` resulted in a `400 Bad Request` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?><Error><Code>InvalidRequest</Code><Message>Checksum Type mismatch occurred, expect (truncated...)\n InvalidRequest (client): Checksum Type mismatch occurred, expected checksum Type: null, actual checksum Type: crc32 - <?xml version=\"1.0\" encoding=\"UTF-8\"?><Error><Code>InvalidRequest</Code><Message>Checksum Type mismatch occurred, expected checksum Type: null, actual checksum Type: crc32</Message><RequestId>17af8fa4-3ca9-1fe4-b037-b8cef600d416</RequestId><HostId>3e498cb178ec409b8114b541839808e4</HostId></Error>"
  }
}

Additional info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    0. Needs triagePending check for reproducibility or if it fits our roadmap32-feedbackbug

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions