Funcionaba perfectamente, ahora no puedo crear un nuevo tema

Me encantaría proporcionar más detalles, pero lamentablemente solo tengo el mensaje de error menos útil posible para trabajar:

Ha ocurrido un error al publicar esta entrada en Discourse.

No hay nada en los registros de error que pueda ver, ni en el sitio ni en Discourse.

Puedo enlazar a un tema existente, pero eso no ayuda mucho más que actualizar los metadatos de la entrada directamente.

¿Hay algún interruptor de depuración que haya pasado por alto en la configuración? ¿O alguna otra forma de obtener un mensaje de error útil?

Hola @invisnet

¿Abriste la consola de desarrollo web (en el navegador) y revisaste los errores en la consola de JS?

Ahora mismo no hay nada relevante, ciertamente nada sobre Discourse.

Después de investigar mucho en cosas que no debería necesitar ver, tengo un mensaje de error:

No se puede verificar la autenticidad del token CSRF.

Que es tan útil como el original.

De esto concluyo:

  • 2.6.0.beta1 está roto,
  • fue un error actualizar, ya que parece no haber forma de volver a 2.5.0,
  • las pruebas unitarias de discourse y/o wp-discourse necesitan trabajo,
  • estoy en problemas hasta que esto se solucione, ya que parece no haber forma de establecer embed_url para un tema manualmente

Supongo que eso es una solución de algún tipo…

Perdón por la respuesta tardía. Estoy monitoreando la categoría Support > WordPress, pero estoy bastante seguro de que no recibí una notificación sobre este tema.

La forma más sencilla de obtener un mensaje de error detallado es instalar Query Monitor – WordPress plugin | WordPress.org English (Canada) y luego intentar publicar una entrada en Discourse. El plugin WP Discourse solía guardar todos los errores en un archivo de registro, pero dejó de hacerlo porque eso va en contra de las recomendaciones de WordPress.

¿Recibes un error al intentar publicar cualquier entrada en Discourse, o el problema solo ocurre con una entrada en particular?

Parece poco probable que la actualización a Discourse 2.6.0.beta1 sea la causa del problema. ¿Se realizaron cambios en tu sitio de WordPress alrededor del momento en que el plugin dejó de funcionar para ti?

El error solo aparece en production.log dentro del contenedor de Docker; no hay nada más en ningún otro registro ni en la consola (ya estoy ejecutando Query Monitor).

Con cualquier nueva entrada.

Solo actualicé el plugin a la versión 2.0.6. Sin embargo, no es el plugin: he revisado las etiquetas de git sin éxito.

Me sorprende que el plugin Query Monitor no muestre ningún error. Esperaría ver algo así, pero con un mensaje de error diferente:

Podría ser útil generar una nueva clave API desde la página de Administración / API de tu Discourse. Asegúrate de que la clave sea una clave global (permite todas las acciones). También verifica que el nombre de usuario de publicación esté configurado correctamente en la pestaña de configuración de la conexión WP Discourse. Dado que puedes enlazar a temas existentes de Discourse, pero no publicar nuevos temas en Discourse, es posible que el problema esté relacionado con los permisos de la API.

Una última cosa que puedes verificar es observar qué valores se establecen en los campos personalizados del post cuando intentas publicar un post desde WordPress en Discourse. Si activas los campos personalizados en el editor, deberías ver algo similar a esto en la parte inferior del editor:

Si puedes indicarme qué campos se están estableciendo, tal vez pueda identificar la causa del problema.

A mí también, pero realmente no muestra nada. Si lo hiciera, sería un error 400 (ya que eso es lo que se reporta en production.log), pero no lo es.

Actualización: después de revisar el código, veo que no habrá error; todo está capturado. Si activas los informes por correo electrónico (correo electrónico pero sin error_log()?), te indica:

Motivo del fallo:
Se devolvió un código de respuesta 400 desde Discourse.
Solicitud incorrecta

pero eso es todo.

Ya hice eso, sin diferencia. Fue un último recurso: la marca de tiempo “último uso” se actualizó en la clave anterior cuando intenté publicar, así que sabía que eso no había cambiado de alguna manera, pero pensé que valía la pena intentarlo.

publish_post_category: 23
update_discourse_topic: 0
wpdc_publishing_error: Solicitud incorrecta
wpdc_unlisted_topic: 1

Eso es todo. Ah, y antes de que preguntes, ocurre lo mismo si no configuro “Publicar como no listado”, pero con la diferencia esperada en los metadatos del artículo.

Gracias por los detalles. Volveré a revisar esto cuando regrese al trabajo el lunes.

No estoy seguro de qué podría estar causando la respuesta 400. ¿Podrías intentar instalar Health Check & Troubleshooting – WordPress plugin | WordPress.org English (Canada) y ver si detecta algún problema con tu sitio de WordPress? Cuando se activa ese plugin, se agrega una entrada llamada “Salud del sitio” en la sección Herramientas del panel de control de WordPress. Al hacer clic en ese enlace y luego ir a la pestaña Estado, es posible que se muestren algunos detalles útiles.

El plugin Health Check también te permite desactivar temporalmente los plugins solo para tu sesión. Esto podría ser útil para ver si el problema está relacionado con un conflicto con otro plugin; si tienes algún plugin relacionado con la seguridad instalado en tu sitio, podría valer la pena comprobar si desactivarlos soluciona el problema.

Desafortunadamente, he llegado a un callejón sin salida. El plugin de Comprobación de Salud no sugirió nada útil (lo cual no sorprende) y todo lo demás funciona perfectamente.

Me encontré con el error CSRF cuando estaba automatizando el envío de invitaciones, lo que significa que cometiste un error en tu código; sin embargo, en este caso el plugin no ha cambiado, por lo que mi conclusión es que 2.6.0.beta1 está roto.

Sé que esa no es una conclusión popular, pero es la única que tengo por ahora.

Editado para añadir: Usé el plugin de Comprobación de Salud para desactivar todos los demás plugins; no hubo diferencia.

El problema persiste con 2.6.0.beta2 y 2.1.2.