# Estoy recibiendo un error 502 al intentar eliminar temas creados por un usuario específico

**URL:** https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161
**Category:** Support
**Created:** [10 Abril, 2023 09:31 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161 "2023-04-10T09:31:52Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Yogesh\_g](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yogesh_g/32/253636_2.png) [@Yogesh\_g](https://meta.discourse.org/u/Yogesh_g)
#### Post date: [10 Abril, 2023 09:31 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/1 "2023-04-10T09:31:53Z")

</div>

Al intentar eliminar temas creados por un usuario específico desde el panel de administración → usuarios, me aparece el error 502.

 ![DISCOURSE-503](https://global.discourse-cdn.com/meta/original/4X/6/8/b/68b6b38d821bce6db94fa9e241164ef42fd2534f.png)  
 ![discourse-502](https://global.discourse-cdn.com/meta/original/4X/b/9/2/b9292e1073c1f257c933605a47dc047bae1842d4.png)

¿Hay alguna otra forma de eliminar temas creados por un usuario específico?

---

<div class="post-metadata">

### Author: ![southpaw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/southpaw/32/79352_2.png) [@southpaw](https://meta.discourse.org/u/southpaw)
#### Post date: [10 Abril, 2023 16:32 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/2 "2023-04-10T16:32:06Z")

</div>

Hola @Yogesh_g,

¿Estás intentando eliminar las 301.719 publicaciones creadas por este usuario? 😬 Parece que eso dejará muchos temas sin sentido debido a la falta de publicaciones.

¿Sería la anonimización del usuario una opción para ti en esta situación?

Creo que estás recibiendo este error 502 debido a la configuración de “eliminar todas las publicaciones como máximo”.

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/8/5/0857514051af7f5b4b844e555949f6333c49a5b7.png)

---

<div class="post-metadata">

### Author: ![Yogesh\_g](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yogesh_g/32/253636_2.png) [@Yogesh\_g](https://meta.discourse.org/u/Yogesh_g)
#### Post date: [10 Abril, 2023 17:30 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/3 "2023-04-10T17:30:18Z")

</div>

He aumentado el límite a un número mayor que el que quiero eliminar y estos temas solo contienen publicaciones del mismo usuario.

¿Puedes explicarme cómo funciona la anonimización de usuarios? ¿Haría que todas las publicaciones fueran ocultas para todos los demás usuarios?

¿Hay alguna forma de acceder a la base de datos que estoy utilizando para alojar Discourse?

---

<div class="post-metadata">

### Author: ![southpaw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/southpaw/32/79352_2.png) [@southpaw](https://meta.discourse.org/u/southpaw)
#### Post date: [10 Abril, 2023 18:11 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/4 "2023-04-10T18:11:39Z")

</div>

> [@Yogesh\_g](#):
>
> ¿Puedes explicar cómo funciona la anonimización de usuarios? ¿Ocultaría todas las publicaciones para todos los demás usuarios?

No, no oculta las publicaciones; elimina el nombre de usuario. Es una buena solución en ocasiones en las que el usuario solicita que se elimine su cuenta, ya que conserva el contenido, manteniendo intactos los temas de tu comunidad, al tiempo que hace que ese contenido sea anónimo, de modo que nadie sepa quién lo escribió. Se describe completamente aquí:

> [@Anonymizing Users in Discourse](https://meta.discourse.org/t/anonymizing-users-in-discourse/86929):
>
> If you want to permanently remove a user from your community, but also preserve their contributions to Discourse, you can anonymize that user. How do I anonymize a user? At the bottom of a user’s admin page, there is an “Anonymize User” button: You’ll be asked to confirm. If you agree, the user will be anonymized. How thorough is the anonymization? The user will no longer be able to log in to your community as this specific account. A new username will be randomly assigned to t…

> [@Yogesh\_g](#):
>
> ¿Hay alguna forma de acceder a la base de datos si estoy utilizando el alojamiento de Discourse?

Si tienes un sitio alojado, lo mejor sería que el equipo de Discourse te ayude.

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [10 Abril, 2023 18:20 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/5 "2023-04-10T18:20:36Z")

</div>

> [@southpaw](#):
>
> 301.719 publicaciones

Esta es una situación bastante única y una gran cantidad de trabajo de [database] (base de datos), no me extraña que la solicitud esté caducando.

> [@Yogesh\_g](#):
>
> Estos temas solo contienen publicaciones del mismo usuario

¡Suena muy excepcional! También recomendaría contactar al soporte de alojamiento para obtener ayuda con este caso.

---

<div class="post-metadata">

### Author: ![Yogesh\_g](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yogesh_g/32/253636_2.png) [@Yogesh\_g](https://meta.discourse.org/u/Yogesh_g)
#### Post date: [11 Abril, 2023 08:03 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/6 "2023-04-11T08:03:48Z")

</div>

Ok, me pondré en contacto con el soporte. Y los actualizaré aquí.

---

<div class="post-metadata">

### Author: ![Yogesh\_g](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yogesh_g/32/253636_2.png) [@Yogesh\_g](https://meta.discourse.org/u/Yogesh_g)
#### Post date: [12 Abril, 2023 15:00 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/7 "2023-04-12T15:00:54Z")

</div>

¿Hay alguna otra forma de eliminar todas las publicaciones de un usuario? ¿O puedo intentar crear un plugin personalizado para ello que elimine las publicaciones de la base de datos? (Mi cliente lo está pidiendo, pero no estoy seguro de que funcione para un gran número de publicaciones, ya que Discourse ya tiene la funcionalidad).

¿Debo crear un plugin para ello o no? Y si es así, ¿cómo funcionará?

---

<div class="post-metadata">

### Author: ![Yogesh\_g](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yogesh_g/32/253636_2.png) [@Yogesh\_g](https://meta.discourse.org/u/Yogesh_g)
#### Post date: [17 Abril, 2023 21:22 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/8 "2023-04-17T21:22:44Z")

</div>

@ [Michael Brown](https://meta.discourse.org/u/supermathie) @southpaw He creado un plugin para eliminar publicaciones de un usuario en lotes de un número determinado. He escrito algo de código Ruby para eliminar publicaciones. Actualmente, estoy utilizando la API de configuración para recibir entradas del administrador.

El desafío al que me enfrento es que quiero crear una página de administrador para el plugin que tenga algunos campos de entrada y un botón. Quiero que mi código Ruby se ejecute al hacer clic en ese botón.

Lo he intentado de varias maneras pero he fallado.

Necesito ayuda, ¿hay alguna forma posible de lograrlo en Discourse?

---

<div class="post-metadata">

### Author: ![southpaw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/southpaw/32/79352_2.png) [@southpaw](https://meta.discourse.org/u/southpaw)
#### Post date: [19 Abril, 2023 16:35 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/15 "2023-04-19T16:35:46Z")

</div>

Hola @Yogesh_g,

> [@Yogesh\_g](#):
>
> He creado un plugin para eliminar publicaciones de un usuario en lotes de un número determinado.

😮

> [@Yogesh\_g](#):
>
> Quiero crear una página de administrador para el plugin que tenga algunos campos de entrada y un botón.

Todavía no tengo experiencia escribiendo plugins, así que no tengo una respuesta rápida para ti sobre las preguntas que has hecho sobre cómo hacer que tu página de administrador funcione, pero me gustaría asegurarme de que recibes la ayuda que necesitas.

Tengo algunos problemas para juntar todas las piezas aquí, así que te envié un mensaje privado para obtener un poco más de detalle.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [10 Junio, 2023 13:00 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/16 "2023-06-10T13:00:35Z")

</div>

Continuado en [How to execute server-side code when clicking a button?](https://meta.discourse.org/t/how-to-execute-server-side-code-when-clicking-a-button/265795)

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [13 Junio, 2023 08:29 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/17 "2023-06-13T08:29:07Z")

</div>



---

<div class="post-metadata">

### Author: ![Yogesh\_Kbizsoft](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yogesh_kbizsoft/32/297602_2.png) [@Yogesh\_Kbizsoft](https://meta.discourse.org/u/Yogesh_Kbizsoft)
#### Post date: [12 Junio, 2023 10:50 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/18 "2023-06-12T10:50:17Z")

</div>

Hola, comunidad de Discourse @pfaffman @merefield

Necesito eliminar todas las publicaciones creadas por un usuario en particular (un total de 301.719 publicaciones). He intentado varias formas, pero no he podido eliminarlas.

¿Cómo debería eliminar todas las publicaciones de ese usuario? Por favor, proporcione una manera. Llevo 3 meses luchando con esto.

---

<div class="post-metadata">

### Author: ![Lhc\_fl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lhc_fl/32/268115_2.png) [@Lhc\_fl](https://meta.discourse.org/u/Lhc_fl)
#### Post date: [12 Junio, 2023 11:34 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/21 "2023-06-12T11:34:34Z")

</div>

¿Te refieres a eliminar permanentemente o a eliminar de forma lógica?

---

<div class="post-metadata">

### Author: ![Yogesh\_Kbizsoft](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yogesh_kbizsoft/32/297602_2.png) [@Yogesh\_Kbizsoft](https://meta.discourse.org/u/Yogesh_Kbizsoft)
#### Post date: [12 Junio, 2023 11:57 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/23 "2023-06-12T11:57:49Z")

</div>

Eliminar permanentemente. No quiero que estas publicaciones se muestren a ningún usuario.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [12 Junio, 2023 11:59 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/24 "2023-06-12T11:59:03Z")

</div>

¿Te es útil este tema?

> [@Delete deleted-posts permanently in bulk?](https://meta.discourse.org/t/delete-deleted-posts-permanently-in-bulk/203289/57?u=jammydodger):
>
> Excellent, glad to hear that did the job for you. So for the sake of combining the answers, one can use the following in the Rails console to destroy all topics that were deleted more than 90 days ago, repeating as many times as necessary if there are more than 1000 topics: Topic.with\_deleted.where(deleted\_at: ...90.days.ago).limit(1000).destroy\_all After that has completed, the following can be used to destroy all posts that have been orphaned from destroyed topics: Post.find\_by\_sql("select …

No creo que sea exactamente lo que buscas, pero ¿quizás puedas modificarlo para que se ajuste a tus necesidades?

---

<div class="post-metadata">

### Author: ![Yogesh\_Kbizsoft](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yogesh_kbizsoft/32/297602_2.png) [@Yogesh\_Kbizsoft](https://meta.discourse.org/u/Yogesh_Kbizsoft)
#### Post date: [12 Junio, 2023 12:01 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/25 "2023-06-12T12:01:26Z")

</div>

Esto no funciona. Lo intenté antes.

---

<div class="post-metadata">

### Author: ![Lhc\_fl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lhc_fl/32/268115_2.png) [@Lhc\_fl](https://meta.discourse.org/u/Lhc_fl)
#### Post date: [12 Junio, 2023 12:11 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/26 "2023-06-12T12:11:59Z")

</div>

Tuve un problema similar antes, necesitaba eliminar alrededor de 200000 publicaciones de diferentes usuarios con muchas condiciones. Cualquier método ordinario traería lentitud a largo plazo.  
Finalmente tomé el camino más tonto. Bucle del 1 al id de publicación máximo. Si satisface la condición, elimínala. Me tomó aproximadamente una hora iterar a través de ellas (alrededor de 900000 publicaciones).

---

<div class="post-metadata">

### Author: ![Yogesh\_Kbizsoft](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yogesh_kbizsoft/32/297602_2.png) [@Yogesh\_Kbizsoft](https://meta.discourse.org/u/Yogesh_Kbizsoft)
#### Post date: [12 Junio, 2023 12:39 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/27 "2023-06-12T12:39:04Z")

</div>

Intenté una forma similar, el servidor da un error de tiempo de espera, aquí está el código

```plaintext
# frozen_string_literal: true

module Jobs
  class DeleteUserPosts < ::Jobs::Scheduled
    every 2.minutes

    def execute(args)
      return unless SiteSetting.delete_user_topics_enabled?

      username = SiteSetting.delete_posts_for_username
      posts_per_batch = SiteSetting.delete_posts_in_single_batch.to_i

      return unless username.present? && posts_per_batch.positive?

      user = User.find_by(username: username)
      return unless user.present?

      posts = user.posts.order(created_at: :asc)

      deleted_count = 0
      posts.each do |post|
        break if deleted_count >= posts_per_batch

        if SiteSetting.delete_user_topics_dry_run?
          Rails.logger.error("DeleteUserPosts eliminaría la publicación ID #{post.id} (#{post.topic.title} - #{post.excerpt}) (modo de simulación)")
        else
          Rails.logger.error("DeleteUserPosts eliminando la publicación ID #{post.id} (#{post.topic.title} - #{post.excerpt})")
          begin
            PostDestroyer.new(Discourse.system_user, post).destroy
            deleted_count += 1
          rescue StandardError => e
            Rails.logger.error("Error al eliminar la publicación ID #{post.id}: #{e.message}")
          end
        end
      end

      # Cancelar el trabajo programado si no quedan más publicaciones
      if posts.size <= posts_per_batch
        self.class.cancel_scheduled_job
      end
    end
  end
end

```

---

<div class="post-metadata">

### Author: ![Lhc\_fl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lhc_fl/32/268115_2.png) [@Lhc\_fl](https://meta.discourse.org/u/Lhc_fl)
#### Post date: [12 Junio, 2023 12:41 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/28 "2023-06-12T12:41:30Z")

</div>

Esto obviamente puede salir mal. 300.000 publicaciones no es un número pequeño, no puedes cargarlas en la memoria a la vez.

---

<div class="post-metadata">

### Author: ![Yogesh\_Kbizsoft](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yogesh_kbizsoft/32/297602_2.png) [@Yogesh\_Kbizsoft](https://meta.discourse.org/u/Yogesh_Kbizsoft)
#### Post date: [12 Junio, 2023 13:07 UTC](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161/29 "2023-06-12T13:07:33Z")

</div>

¿Podrías compartir el fragmento de código que utilizaste o mostrar un ejemplo?

[Página siguiente](https://meta.discourse.org/t/i-am-getting-502-error-while-trying-to-delete-topics-created-by-specific-user/261161.md?page=2)
