Fallo al restaurar datos tras la migración de Discourse

[2026-05-11 02:05:14] Volviendo a cargar la configuración del sitio...
[2026-05-11 02:05:14] Desactivando correos salientes para usuarios que no son personal...
[2026-05-11 02:05:14] Ejecutando semilla fu...
[2026-05-11 02:05:31] Desactivando el modo de solo lectura...
[2026-05-11 02:05:31] Limpiando la caché de categorías...
[2026-05-11 02:05:31] Volviendo a cargar las traducciones...
[2026-05-11 02:05:31] Reasignando las subidas...
[2026-05-11 02:05:31] Restaurando las subidas, esto puede tardar un rato...
[2026-05-11 02:05:33] EXCEPCIÓN: Solo puedes especificar un checksum no predeterminado a la vez.
[2026-05-11 02:05:33] /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/seahorse/client/plugins/raise_response_errors.rb:17:in 'Seahorse::Client::Plugins::RaiseResponseErrors::Handler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in 'Aws::S3::Plugins::SseCpk::Handler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/dualstack.rb:21:in 'Aws::S3::Plugins::Dualstack::OptionHandler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/accelerate.rb:43:in 'Aws::S3::Plugins::Accelerate::OptionHandler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/checksum_algorithm.rb:167:in 'Aws::Plugins::ChecksumAlgorithm::OptionHandler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:16:in 'Aws::Plugins::JsonvalueConverter::Handler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/invocation_id.rb:16:in 'Aws::Plugins::InvocationId::Handler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in 'Aws::Plugins::IdempotencyToken::Handler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/param_converter.rb:26:in 'Aws::Plugins::ParamConverter::Handler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/seahorse/client/plugins/request_callback.rb:89:in 'Seahorse::Client::Plugins::RequestCallback::OptionHandler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/response_paging.rb:12:in 'Aws::Plugins::ResponsePaging::Handler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/seahorse/client/plugins/response_target.rb:24:in 'Seahorse::Client::Plugins::ResponseTarget::Handler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in 'block in Aws::Plugins::Telemetry::Handler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/telemetry/no_op.rb:29:in 'Aws::Telemetry::NoOpTracer#in_span'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/telemetry.rb:53:in 'Aws::Plugins::Telemetry::Handler#span_wrapper'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in 'Aws::Plugins::Telemetry::Handler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/seahorse/client/request.rb:72:in 'Seahorse::Client::Request#send_request'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/client.rb:17315:in 'Aws::S3::Client#put_object'
/var/www/discourse/lib/file_store/to_s3_migration.rb:216:in 'block (2 levels) in FileStore::ToS3Migration#migrate_to_s3'
[2026-05-11 02:05:33] Intentando revertir...
[2026-05-11 02:05:33] Revertiendo...
[2026-05-11 02:05:34] Limpiando cosas...
[2026-05-11 02:05:34] Eliminando funciones del esquema discourse_functions...
[2026-05-11 02:05:34] Eliminando el directorio temporal '/var/www/discourse/tmp/restores/default/2026-05-11-020447'...
[2026-05-11 02:05:34] Reanudando sidekiq...
[2026-05-11 02:05:34] Marcando la restauración como finalizada...
[2026-05-11 02:05:34] Notificando a 'niege' del final de la restauración...

¿Cómo se soluciona este problema?

Creo que puede haber un problema con la compatibilidad de S3.

¿La instancia a la que estás restaurando está actualizada con la última versión de Discourse?

Creo que hay un problema aquí en
/var/www/discourse/lib/file_store/to_s3_migration.rb
quizás con el payload que se envía a put_object en la línea 216.

No estoy seguro de cuál es la solución completa, pero creo que para que funcione podrías necesitar desactivar S3 (enable_s3_uploads: false) y realizar la restauración y extracción localmente. Luego, vuelve a habilitar S3 y usa el comando rake uploads:migrate_to_s3.

@Lilly
Debido a que el servidor ha expirado, es necesario migrar a un nuevo servidor. Primero, he realizado una copia de seguridad de los datos de Discourse.
Sincroniza el archivo app.yml con el nuevo servidor y, en el nuevo servidor, ejecuta:

./launcher rebuild app

Luego, sube la copia de seguridad de los datos a /var/discourse/shared/standalone/backups/default en el nuevo servidor.
Usa los siguientes comandos:

./launcher enter app
discourse enable_restore
discourse restore xxxxxxxxxxxxxxxxxxxxx.tar.gz

La restauración falló. Después de reconstruir Discourse nuevamente, intenté restaurar desde el panel de administración, pero también falló. El archivo adjunto es el registro de restauración.
log.txt (124.0 KB)

Cuéntanos sobre tu entorno, por ejemplo, ¿qué almacén de objetos estás utilizando?

Ubuntu 24.04.4 LTS (x86_64)

Cloudflare R2