Bug: il caricamento del backup multipart S3 fallisce con il metodo undefined 'downcase' per nil

Ciao,

Sto utilizzando un’installazione di Discourse basata su Docker e ho configurato le seguenti variabili di ambiente AWS:

env:
AWS_REQUEST_CHECKSUM_CALCULATION: "WHEN_REQUIRED"
AWS_RESPONSE_CHECKSUM_VALIDATION: "WHEN_REQUIRED"

Quando avvio un backup dall’interfaccia utente per caricarlo su S3, l’operazione fallisce durante la fase di upload multipart.

Il problema origina nel file /var/www/discourse/lib/backup_restore/s3_backup_store.rb alla seguente riga:

obj.upload_file(source_path, content_type: content_type)

Ecco l’errore esatto dai log:

[2026-07-11 10:18:38 UTC] /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/multipart_file_uploader.rb:186:in block (2 levels) in Aws::S3::MultipartFileUploader#upload_in_threads': undefined method downcase' for nil (NoMethodError)

        k = "checksum_#{algorithm.downcase}".to_sym

Sono riuscito a risolvere temporaneamente il problema passando esplicitamente un checksum_algorithm a upload_file in questo modo:

obj.upload_file(
source_path,
content_type: content_type,
checksum_algorithm: "CRC32"
)

Con questa modifica applicata, l’upload funziona perfettamente. Tuttavia, poiché si tratta di una modifica manuale all’interno del container, verrà cancellata la prossima volta che ricostruirò il container.

Potresti verificare e correggere questo bug nel codice sorgente principale?

Grazie!