# Error al exportar el archivo de datos del usuario: método 'url' no definido para una instancia de DiscourseDataExplorer::QueryGroup

**URL:** <https://meta.discourse.org/t/user-data-archive-export-fails-undefined-method-url-for-an-instance-of-discoursedataexplorer-querygroup/415001>\
**Category:** Bug\
**Tags:** data-explorer, bookmarks\
**Created:** [19 Octubre, 2026 05:37 UTC](https://meta.discourse.org/t/user-data-archive-export-fails-undefined-method-url-for-an-instance-of-discoursedataexplorer-querygroup/415001 "2026-10-19T05:37:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)\
**Post date:** [19 Octubre, 2026 05:37 UTC](https://meta.discourse.org/t/user-data-archive-export-fails-undefined-method-url-for-an-instance-of-discoursedataexplorer-querygroup/415001/1 "2026-10-19T05:37:45Z")

</div>

**Divulgación completa** : Utilicé ask.discourse para redactar este informe de error tras una conversación. También sé que me debo actualizaciones, pero quería publicar esto mientras aún estaba fresco en mi memoria.

Pude reproducirlo en dos cuentas de usuario diferentes.

### Resumen

Solicitar un archivo de datos del usuario (Preferencias → Exportar tus datos → Solicitar archivo) falla para los usuarios que han marcado con un marcador un informe de grupo de [Data Explorer](https://meta.discourse.org/t/32566?silent=true). El trabajo en segundo plano `Jobs::ExportUserArchive` se detiene al generar el CSV de marcadores, por lo que la exportación nunca se completa y no se envía ningún enlace de descarga.

### Entorno

- Versión de Discourse: 2026.8.0-latest.1
- [Data Explorer](https://meta.discourse.org/t/32566?silent=true): incluido con el núcleo (la versión sigue la del núcleo)
- Autoalojado / alojado: autoalojado
- Pila Ruby/Rails según la traza de errores: activemodel/activerecord 8.0.5.1, Sidekiq 7.3.10

### Pasos para reproducir

1. Como administrador, crea una consulta de [Data Explorer](https://meta.discourse.org/t/32566?silent=true) y otorga acceso a un grupo.
2. En la pestaña **Informes** del grupo, haz clic en **Marcar** en la consulta para que se convierta en un informe de grupo marcado.
3. Como ese mismo usuario, ve a **Preferencias → Exportar tus datos → Solicitar archivo**.
4. Observa cómo falla el trabajo (revisa `Admin → Registros` o los registros de Sidekiq).

### Comportamiento esperado

Debería generarse el archivo del usuario y el usuario debería recibir el enlace de descarga, incluidos sus marcadores.

### Comportamiento real

El trabajo de exportación lanza una excepción y el archivo falla. La traza de errores muestra que el error ocurre en `bookmarks_export`, donde el trabajo llama a `.url` sobre el objeto marcado:

```plaintext
Job exception: undefined method 'url' for an instance of DiscourseDataExplorer::QueryGroup

```

Trazas de errores (resumidas a los marcos relevantes):

```plaintext
activemodel-8.0.5.1/lib/active_model/attribute_methods.rb:512:in 'ActiveModel::AttributeMethods#method_missing'
activerecord-8.0.5.1/lib/active_record/attribute_methods.rb:495:in 'ActiveRecord::AttributeMethods#method_missing'
/var/www/discourse/app/jobs/regular/export_user_archive.rb:325:in 'block in Jobs::ExportUserArchive#bookmarks_export'
activerecord-8.0.5.1/lib/active_record/relation/delegation.rb:101:in 'Array#each'
activerecord-8.0.5.1/lib/active_record/relation/delegation.rb:101:in 'ActiveRecord::Delegation#each'
/var/www/discourse/app/jobs/regular/export_user_archive.rb:319:in 'Jobs::ExportUserArchive#bookmarks_export'
/var/www/discourse/app/jobs/regular/export_user_archive.rb:170:in 'Kernel#public_send'
/var/www/discourse/app/jobs/regular/export_user_archive.rb:170:in 'block (2 levels) in Jobs::ExportUserArchive#execute'
/var/www/discourse/app/jobs/regular/export_user_archive.rb:168:in 'block in Jobs::ExportUserArchive#execute'

```

### Análisis

Los marcadores son polimórficos. El trabajo de exportación llama a `bookmarkable.url`, lo cual funciona para los tipos de objetos marcables del núcleo (Topic, Post), pero **`DiscourseDataExplorer::QueryGroup` no implementa `url`** , por lo que el trabajo lanza `NoMethodError` en el primer marcador de este tipo.

Parece que [Data Explorer](https://meta.discourse.org/t/32566?silent=true) registra los grupos de consultas como marcables (mediante el botón Marcar de informes de grupo), pero el modelo carece del método `url` (o el trabajo de exportación del núcleo necesita una protección para los tipos de objetos marcables que no proporcionan uno).

### Solución sugerida

Implementar un método `url` en `DiscourseDataExplorer::QueryGroup`, o hacer que `bookmarks_export` del núcleo sea defensivo (p. ej., `bookmarkable.respond_to?(:url)` / rescate por fila) para que un solo tipo de objeto marcabl no compatible no pueda interrumpir toda la exportación.

### Solución temporal

Eliminar los marcadores problemáticos (filas en `bookmarks` donde `bookmarkable_type = 'DiscourseDataExplorer::QueryGroup'` para el usuario afectado) permite que la exportación se complete.
