Exportación de Mastodon atascada en “descarga pendiente”: pasos para solucionarlo
🔍 WiseChecker

Exportación de Mastodon atascada en “descarga pendiente”: pasos para solucionarlo

Solicitas una exportación de tus datos de Mastodon, pero el estado de descarga permanece en “Descarga pendiente” durante horas o incluso días. Este problema suele ocurrir cuando la cola de trabajos en segundo plano de tu servidor Mastodon está sobrecargada o atascada en una tarea fallida. El servidor nunca genera el archivo de exportación, lo que te deja sin forma de respaldar tus publicaciones, listas y seguidos. Este artículo explica por qué se atascan las exportaciones y proporciona soluciones paso a paso tanto para usuarios de instancias como para administradores de servidores.

Puntos clave: Solucionar una exportación de Mastodon atascada

  • Preferencias > Importar y exportar > Exportación de datos: El lugar donde solicitas cada tipo de exportación; si está atascada, primero debes borrar el trabajo pendiente.
  • Panel de Sidekiq (solo administradores): El visor de colas que muestra los trabajos de exportación atascados; reintenta o elimina el trabajo fallido para desbloquear las exportaciones.
  • Comando de la consola Rails ExportWorker purge: Una solución del lado del servidor que elimina todos los trabajos de exportación pendientes y te permite solicitar uno nuevo.

ADVERTISEMENT

Por qué se atascan las exportaciones de Mastodon en “Descarga pendiente”

Mastodon no crea archivos de exportación al instante. Cuando haces clic en un botón de descarga en la página Preferencias > Importar y exportar > Exportación de datos, el sistema encola un trabajo en segundo plano gestionado por Sidekiq, el procesador de trabajos. Sidekiq toma el trabajo, ejecuta la clase ExportWorker y escribe el archivo en una ubicación temporal. La interfaz web muestra entonces un enlace de descarga en lugar del mensaje “Descarga pendiente”.

El trabajo puede permanecer pendiente por tres razones principales:

La cola de Sidekiq está saturada

Si tu instancia de Mastodon procesa un gran volumen de tareas —federar publicaciones, enviar notificaciones o generar miniaturas—, el trabajo de exportación queda detrás de otras tareas. Una cola con miles de trabajos en espera puede retrasar una exportación durante horas.

Un trabajo fallido bloquea la cola

A veces, un trabajo de exportación anterior falla debido a un archivo faltante, un tiempo de espera de la base de datos o un error de memoria insuficiente. Sidekiq reintenta el trabajo fallido varias veces, pero si la causa raíz persiste, el trabajo permanece en el conjunto de reintentos. Los nuevos trabajos de exportación para el mismo usuario pueden quedar bloqueados hasta que se resuelva el trabajo anterior.

El trabajador de exportación se bloquea sin reintento

En instancias más pequeñas con RAM limitada, el ExportWorker puede consumir demasiada memoria y ser eliminado por el sistema operativo. Sidekiq no siempre vuelve a encolar el trabajo después de una eliminación por falta de memoria, lo que deja el estado de exportación como “Descarga pendiente” de forma permanente.

Pasos para desatascar una exportación pendiente de Mastodon

El método de solución depende de si eres un usuario normal o un administrador del servidor. Sigue la sección que corresponda a tu rol.

Para usuarios normales: cancelar y volver a solicitar la exportación

  1. Abre Preferencias > Importar y exportar > Exportación de datos
    Ve a la configuración de tu Mastodon. La página de exportación de datos enumera todos los tipos de exportación: publicaciones, multimedia, listas, marcadores, seguidos, bloqueos, silenciados y dominios bloqueados.
  2. Haz clic de nuevo en el botón “Solicitar” para el tipo de exportación atascado
    Si el botón está atenuado o muestra “Descarga pendiente”, espera 30 segundos y actualiza la página. Si el estado no cambia, pasa al siguiente paso.
  3. Cierra sesión y vuelve a iniciarla
    Cerrar sesión borra la caché de tu sesión. Después de iniciar sesión de nuevo, vuelve a la página de exportación de datos. Es posible que el servidor haya eliminado el trabajo atascado mientras tanto. Si el botón ahora se puede pulsar, solicita la exportación de nuevo.
  4. Contacta con el administrador de tu instancia
    Si la exportación sigue pendiente después de cerrar sesión, el problema está en el servidor. Envía un mensaje directo al administrador de tu instancia con el tipo exacto de exportación que está atascado. Incluye la hora en que lo solicitaste por primera vez.

Para administradores de servidores: borrar el trabajo atascado mediante Sidekiq

  1. Accede al panel de Sidekiq
    Abre https://your-instance.example.com/sidekiq en un navegador. Debes tener privilegios de administrador y haber iniciado sesión en tu cuenta de Mastodon. Si ves un error 404, es posible que tu instancia tenga deshabilitada la interfaz web de Sidekiq; usa el método de la consola Rails en su lugar.
  2. Ve a la pestaña Retries
    Haz clic en el enlace “Retries” en la parte superior del panel de Sidekiq. Busca trabajos con la clase ExportWorker. La carga útil del trabajo contiene el ID de usuario de la cuenta afectada.
  3. Elimina o reintenta el trabajo ExportWorker
    Haz clic en el botón “Delete” para eliminar el trabajo atascado por completo. Como alternativa, haz clic en “Retry” para intentar la exportación de nuevo inmediatamente. Si el trabajo vuelve a fallar en segundos, elimínalo y pide al usuario que solicite una exportación nueva.
  4. Revisa la pestaña Busy para ver un ExportWorker en ejecución
    Un trabajo atascado en el estado “Busy” significa que Sidekiq intenta procesarlo pero no puede finalizarlo. Reinicia el proceso de Sidekiq en tu servidor: ejecuta systemctl restart mastodon-sidekiq en una configuración basada en systemd. Después del reinicio, el trabajo se reintentará o se moverá a la pestaña Dead.

Para administradores de servidores: purgar todas las exportaciones pendientes mediante la consola Rails

  1. Abre una sesión de la consola Rails
    Conéctate por SSH a tu servidor Mastodon y ejecuta cd /home/mastodon/live && RAILS_ENV=production bin/rails console. Sustituye la ruta por tu directorio de instalación de Mastodon si es diferente.
  2. Elimina todos los trabajos de exportación pendientes
    Escribe el siguiente comando y pulsa Enter:
    Sidekiq::Queue.new("default").each { |job| job.delete if job.display_class == "ExportWorker" }
    Esto elimina todos los trabajos de exportación en cola de la cola predeterminada.
  3. Borra el conjunto de reintentos de trabajos de exportación
    Ejecuta:
    Sidekiq::RetrySet.new.each { |job| job.delete if job.display_class == "ExportWorker" }
    Esto elimina cualquier trabajo de exportación fallido que Sidekiq tuviera previsto reintentar.
  4. Pide al usuario que solicite la exportación de nuevo
    Después de purgar los trabajos, el usuario verá un botón “Solicitar” nuevo en su página de exportación de datos. Indícale que haga clic en él y espere hasta cinco minutos para que aparezca el archivo.

ADVERTISEMENT

Si la exportación sigue mostrando “Descarga pendiente” después de la solución principal

El archivo de exportación supera los límites de almacenamiento del servidor

Mastodon almacena los archivos de exportación en un directorio temporal, normalmente /home/mastodon/live/public/system/export. Si el disco está lleno, Sidekiq no puede escribir el archivo. Ejecuta df -h en tu servidor para comprobar el uso del disco. Libera espacio eliminando exportaciones antiguas o aumentando el almacenamiento.

La exportación de multimedia agota el tiempo en cuentas grandes

El archivo de exportación de multimedia contiene todos los archivos que has subido. Una cuenta con miles de imágenes puede hacer que el trabajador supere el tiempo de espera predeterminado de 25 minutos de Sidekiq. Aumenta el tiempo de espera en tu configuración de Sidekiq o aconseja al usuario que solicite una exportación solo de publicaciones.

La caché del navegador muestra un estado obsoleto

Incluso después de que se complete la exportación, tu navegador puede mostrar el mensaje antiguo “Descarga pendiente”. Borra la caché del navegador para tu instancia de Mastodon o abre la página de exportación en una ventana de navegación privada. Si el enlace de descarga aparece allí, la exportación está lista.

Un tema o extensión personalizada interfiere con la interfaz

Las extensiones del navegador que modifican la interfaz web de Mastodon pueden ocultar el enlace de descarga. Desactiva todas las extensiones temporalmente y recarga la página de exportación de datos. Si el botón aparece, vuelve a activar las extensiones una por una para encontrar la culpable.

Elemento Comprobación de cola mediante Sidekiq Comprobación de cola mediante la consola Rails
Nivel de habilidad necesario Intermedio (se requiere inicio de sesión de administrador) Avanzado (SSH y línea de comandos)
Tiempo de ejecución 2-5 minutos 5-10 minutos
Elimina trabajos reintentados Sí, manualmente por trabajo Sí, eliminación masiva por clase
Requiere reinicio del servidor Solo si el trabajo está atascado en estado Busy No
Riesgo de pérdida de datos Ninguno Ninguno (solo elimina el trabajo en cola, no los datos de exportación)

Ahora ya sabes por qué se atascan las exportaciones de Mastodon y cómo solucionarlas tanto desde el lado del usuario como del administrador. Para los usuarios normales, la solución más rápida es cerrar sesión y volver a iniciarla, y luego solicitar la exportación de nuevo. Si eso falla, pide a tu administrador que borre la cola de Sidekiq. Los administradores de servidores deben revisar primero el panel de Sidekiq en busca de trabajos ExportWorker atascados y, luego, usar la consola Rails para purgar todas las exportaciones pendientes si la cola está muy bloqueada. Después de la solución, verifica que la exportación se complete en cinco minutos. Para prevenirlo de forma continua, monitorea a diario la profundidad de tu cola de Sidekiq y reinicia el servicio si la cola supera los 500 trabajos.

ADVERTISEMENT