Unsupported header 'x-amz-checksum-crc32' received for this API call.
While updating Discourse after Feb 24th, the update might fail with the following error message if you use Backblaze or some other S3 provider that isn't AWS: 1
I, [2025-04-02T08:51:34.524786 #1]  INFO -- : > cd /var/www/discourse && sudo -E -u discourse bundle exec rake s3:upload_assets
`/root` is not writable.
Bundler will use `/tmp/bundler20250402-1714-yuyf6i1714' as your home directory temporarily.
rake aborted!
Aws::S3::Errors::InvalidArgument: Unsupported header 'x-amz-checksum-crc32' received for this API call. (Aws::S3::Errors::InvalidArgument)
                    This is because of a breaking change in the AWS
                    SDK that has been reported, but
                    was closed as "not planned". The workaround is
                    to tell the Discourse installation to use the last
                    compatible version of the AWS SDK. First, create
                    templates/aws-revert.template.yml: 2
# Revert aws-sdk-s3 to a version that works with Backblaze
hooks:
  after_bundle_exec:
    - exec:
        cd: $home
        cmd:
          - bundle config set frozen false
          - "sed -i 's/gem \"aws-sdk-s3\", require: false/gem \"aws-sdk-s3\", \"1.177.0\", require: false/' Gemfile"
          - bundle update aws-sdk-s3
          - bundle add aws-sdk-core --version 3.215
                    Then include the template in
                    app.yml: 2
templates:
  - "templates/aws-revert.template.yml"