Finalmente logré que esto funcione en mi tercera o cuarta sesión de trabajo. El problema parecía ser la falta de imágenes en la carpeta “uploads”. La solución fue realizar una nueva instalación, usar el mismo archivo “app.yml” y restaurar desde una copia de seguridad con archivos de relleno para las imágenes faltantes.
Paralelamente al problema original, noté que tras una actualización previa varias iconos e imágenes desaparecieron. Cuando intenté reconstruir, los registros mostraron que el proceso se detenía tras “optimizar las imágenes del sitio”. Creo que se quedó atascado en una imagen faltante y se detuvo sin registrar ese error específico. (No había ninguna indicación de que el problema fueran las imágenes faltantes ni qué archivos de imagen faltaban).
Al final, realicé una nueva instalación de Discourse con la última versión. Restauré desde la copia de seguridad siguiendo las instrucciones aquí. Me llevó tres intentos.
Primero, el script de copia de seguridad falló buscando archivos subidos, así que copié la carpeta uploads/default desde mis archivos de copia de seguridad anteriores.
Ejecuté el script de restauración nuevamente. Esta vez dio un error indicando que no podía encontrar un archivo de imagen específico. Creé un archivo de imagen falso, le di el mismo nombre y lo coloqué en la ubicación especificada.
Ejecuté el script de restauración por tercera vez. ¡Voilá! Mi sitio se restauró desde la copia de seguridad y quedó actualizado a la última versión.