Problema al publicar tema después de mudarse a un nuevo servidor

Tenemos un sitio de WordPress donde usamos Discourse para iniciar sesión y comentar en WordPress.
Todo funcionó bien hasta que trasladamos WordPress (que siempre se ejecutó en un servidor diferente) a una nueva IP y a un servidor diferente.

Desde entonces, comenzamos a recibir artículos en el editor clásico que tienen la configuración que se muestra en la imagen a continuación y que no obtienen un enlace de Discourse, incluso después de que se publican automáticamente.

Siempre tengo que ir manualmente a un artículo en particular y simplemente traducir el artículo, luego se crea el enlace de Discourse y todo está bien.

¿Alguna idea de dónde buscar la causa del problema?

¿Alguien está dando pistas sobre dónde podría estar el problema?
La única mención de error que encontré en el registro fue esta, pero no pude rastrear nada sobre este mensaje.

[2024-06-14 06:45:38] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"771554"} 
[2024-06-14 06:45:43] publish.INFO: create_post.post_success {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981} 
[2024-06-14 06:45:43] publish.INFO: create_post.body_valid {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981} 
[2024-06-14 06:45:43] publish.INFO: create_post.after_publish {"post_id":771981,"remote_post_type":"create_post","discourse_post_id":"10416","discourse_topic_id":"5899","discourse_permalink":"https://komunita.svetandroida.cz/t/konec-ikonickeho-designu-galaxy-buds-3-dostanou-zcela-novy-vzhled/5899"} 
[2024-06-14 06:45:43] webhook_topic.ERROR: update_topic_content.response_body_error

Probablemente valga la pena buscar en Meta update_topic_content.response_body_error :wink:

Hola @Petr_Mišák

¿Tienes un ejemplo de dicho tema? El ejemplo en tus registros muestra que el tema de Discourse se publicó correctamente. Eso es lo que significan estas líneas:

[2024-06-14 06:45:43] publish.INFO: create_post.post_success {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981} 
[2024-06-14 06:45:43] publish.INFO: create_post.body_valid {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981} 
[2024-06-14 06:45:43] publish.INFO: create_post.after_publish {"post_id":771981,"remote_post_type":"create_post","discourse_post_id":"10416","discourse_topic_id":"5899","discourse_permalink":"https://komunita.svetandroida.cz/t/konec-ikonickeho-designu-galaxy-buds-3-dostanou-zcela-novy-vzhled/5899"} 

Puedes ver un enlace al tema publicado correctamente en la última línea de esos registros, es decir:

"discourse_permalink":"https://komunita.svetandroida.cz/t/konec-ikonickeho-designu-galaxy-buds-3-dostanou-zcela-novy-vzhled/5899"

El error del webhook que ves inmediatamente después sugiere un problema con el webhook, pero no es necesariamente indicativo de un problema con la publicación en sí.

Si pudieras ejecutar una nueva prueba donde reproduzcas el problema y echar un vistazo a los registros de publish que se crearon, eso nos dará una idea del problema que has descrito.

Además, ¿podrías compartir a qué te refieres con “traducir el artículo”?

Siempre tengo que ir manualmente a un artículo en particular y simplemente traducir el artículo

¿Qué estás haciendo exactamente aquí?

Sospecho que tu instalación de Discourse podría haber almacenado en caché la entrada DNS y está utilizando la dirección IP de tu antigua instalación de WP. La forma más rápida de intentarlo es reiniciar el contenedor y ver si el problema desaparece.

2 Me gusta

El registro probablemente muestra un registro del estado cuando guardo el artículo manualmente. Disculpe, fue un error tipográfico, debería haber dicho guardar manualmente.

También pensé en lo del DNS, e hice el “./launcher rebuild app” justo después de mover WordPress al nuevo servidor, pero tal vez fue demasiado pronto desde la perspectiva del DNS. Lo intentaré de nuevo entonces.

Disculpe, solo para confirmar, ¿quiere decir que el registro no está relacionado con el problema de publicación automática que ha informado? Si no es así, ¿podría compartir un registro de un evento de publicación automática?

Me resulta muy difícil saber si líneas específicas del registro están relacionadas con el problema o no. He hecho algunos cambios en DNS y veremos si ayudó cuando salga el próximo artículo a las 10 en punto.

Por lo tanto, el problema actual es que cuando un artículo en WordPress debe publicarse automáticamente a una hora determinada, no se crea el enlace a la comunidad de Discourse. Pero cuando posteriormente edito manualmente el artículo problemático y simplemente lo guardo sin ningún cambio, se crea el enlace a la comunidad de Discourse.

La próxima vez que se publique un artículo, busque registros con publish.INFO o publish.ERROR con una marca de tiempo similar y comparta lo que encuentre aquí.

1 me gusta

Actualmente, el artículo programado automáticamente Vaše hodinky Amazfit zřejmě budou ještě lepší! Blíží se velká aktualizace está publicado y todavía no hay enlace a Discourse

Que tiene el ID 772581

Lamentablemente, todo lo que veo en el registro desde nuestra última comunicación es esta información.

[2024-06-21 07:09:01] connection.INFO: check_connection_status.successful_connection
[2024-06-21 07:09:01] connection.INFO: check_connection_status.valid_scopes
[2024-06-21 07:23:30] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772615"}
[2024-06-21 07:25:57] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772615"}
[2024-06-21 07:42:03] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772857"}
[2024-06-21 07:47:37] sso_client.INFO: auth_user.success {"user_id":129795}
[2024-06-21 07:48:05] sso_client.INFO: auth_user.success {"user_id":152766}
[2024-06-21 08:04:20] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772857"}

Aquí envío el registro meta. No pude leer nada en él

### Este archivo está incluido en las descargas de registros ###

### Servidor ###

WordPress - 6.5.4
PHP - 8.0.30
MySQL - 11.3.2

### Plugins Activos ###

Advanced Google reCAPTCHA - 1.21
Allviews - 1.0.1
APS Arena Products - 2.5.5
Classic Editor - 1.6.3
Error Log Monitor - 1.7.8
FS Poster - 6.5.9
GTM4WP - Un plugin de Google Tag Manager (GTM) para WordPress - 1.20.2
Head, Footer and Post Injections - 3.2.8
Kontrola uploadovaných obrázků - 1.0
Limit Modified Date - 1.0.0
Lnk.Bio - 0.2.2
Lokální ukládání Gravatarů - 1.4
Lynt Custom Functions - 1.0.3
Pixwords Scenes Nápověda - 1.0.2
Rank Math SEO PRO - 3.0.64
Rank Math SEO with AI SEO Tools - 1.0.221
Redakční Tools - bez expirace - 2.0.12
SA Partner Products Feed - 1.0
Simple Local Avatars - 2.7.10
Speculative Loading - 1.3.1
Super Progressive Web Apps - 2.2.27
SZ Ad Manager API - 1.3.21
Webpushr Push Notifications - 4.36.0
WordPress Editorial Calendar - 3.8.5
WP-Appbox - 4.4.19
WP-Discourse - 2.5.3
WP-PostViews - 1.77
Wpify Performance Helper - master
WP Shortcode by MyThemeShop - 1.4.17
WP Shortcode by MyThemeShop extend by Svět Zítřka - 1.16

### Ajustes de WP Discourse (Secretos Excluidos) ###

connection-logs - 1
display-subcategories - 0
allow-tags - 0
max-tags - 5
publish-as-unlisted - 1
full-post-content - 0
custom-excerpt-length - 55
add-featured-link - 1
auto-publish - 1
force-publish - 1
force-publish-max-age - 0
publish-failure-notice - 1
auto-track - 1
allowed_post_types - post,page
exclude_tags -
hide-discourse-name-field - 0
discourse-username-editable - 0
direct-db-publication-flags - 0
verbose-publication-logs - 1
enable-discourse-comments - 1
comment-type - display-comments-link
ajax-load - 0
load-comment-css - 0
discourse-new-tab - 0
hide-wordpress-comments - 0
show-existing-comments - 1
max-comments - 0
min-replies - 1
min-score - 0
min-trust-level - 1
bypass-trust-level-score - 50
only-show-moderator-liked - 0
custom-datetime-format -
cache-html - 1
clear-cached-comment-html - 0
verbose-comment-logs - 1
use-discourse-webhook - 1
webhook-match-old-topics - 0
use-discourse-user-webhook - 0
webhook-match-user-email - 0
verbose-webhook-logs - 1
verbose-sso-logs - 1
enable-sso - 0
auto-create-sso-user - 0
real-name-as-discourse-name - 0
force-avatar-update - 0
redirect-without-login - 0
sso-client-enabled - 1
sso-client-login-form-change - 1
sso-client-sync-by-email - 1
sso-client-disable-create-user - 0
sso-client-sync-logout - 1
logs-enabled - 1

Ok, el problema que tienes es el viejo problema de la publicación automática con publicaciones programadas.

La causa más probable es que uno de tus otros plugins en tu sitio también esté interactuando con tu sistema de programación, produciendo los problemas que otros han visto en el pasado. Viendo tu lista de plugins, este parece un candidato posible:

WordPress Editorial Calendar - 3.8.5

¿Podrías intentar deshabilitarlo y ver si el problema persiste?

Gracias por el consejo. He rellenado el plugin y veremos a las 12 en punto, hora nuestra, si sale el artículo.

Pero la misma configuración del plugin también estaba en el servidor anterior, donde todo funcionaba bien.

Warning: Undefined variable $status_url in /.../www/wp-content/plugins/wp-discourse/lib/sync-discourse-topic.php on line 230

Que debería ser este fragmento de código $response = $this->discourse_request( $status_url, $args );

¿Está 100% seguro de que las configuraciones eran idénticas? ¿Cómo lo ha verificado?

Esto se refiere a webhooks y no está relacionado con su problema.

Sí, la configuración del plugin de Discourse fue idéntica en el servidor anterior, ya que tanto los datos del servidor como los de la base de datos se trasladaron físicamente.

Así que, desafortunadamente, no fue este plugin. Actualmente está deshabilitado y el artículo que acaba de salir enlazando a Discourse no obtuvo Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C

No hay nada en el registro sobre el artículo con ID 772245

Pero si abro el artículo problemático manualmente y lo guardo. Aparece lo siguiente en el registro

[2024-06-21 10:13:07] publish.INFO: create_post.post_success {"wp_title":"Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C","wp_author_id":"150202","wp_post_id":772245} 
[2024-06-21 10:13:07] publish.INFO: create_post.body_valid {"wp_title":"Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C","wp_author_id":"150202","wp_post_id":772245} 
[2024-06-21 10:13:07] publish.INFO: create_post.after_publish {"post_id":772245,"remote_post_type":"create_post","discourse_post_id":"10809","discourse_topic_id":"6138","discourse_permalink":"https://komunita.svetandroida.cz/t/skvely-na-cesty-xiaomi-vydalo-malicky-holici-strojek-s-nabijenim-pres-usb-c/6138"} 
[2024-06-21 10:13:07] webhook_topic.ERROR: update_topic_content.response_body_error  
[2024-06-21 10:13:07] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772245"} 

¿Podría ser un problema que ejecutemos WP cron usando WP CLI?

Sí, podría ser eso. Intenta programar una publicación en la interfaz de usuario de WordPress y comprueba si eso funciona.

Hmm, cuando conectamos un cron normal, no solo el WP CLI, todo funciona como debería.

Pero no entiendo por qué es así. ¿Podría modificarse el plugin de WordPress para que sea compatible también con WP CLI?

¿No ayudaría @simon?

¿Cómo estás llamando al cron job? Ten en cuenta que cuando llamas a wp cron, la llamada se ve afectada por cualquier parámetro global de wp: Config – WP-CLI – WordPress.org. Es posible que algo en tu configuración de wp esté afectando a cómo se maneja el trabajo.

Esto llamará a todos los trabajos programados de WordPress cron:

wp cron event run --due-now

Si solo estás llamando a wp cron event run publish_future_post, es posible que los eventos que requiere el plugin WP Discourse para publicar una entrada no se estén activando. Creo que este es el equivalente a cómo WordPress maneja internamente las entradas programadas:

wp cron event run publish_future_post future_to_publish publish_post transition_post_status

No he probado esto. Estoy configurando una nueva computadora y aún no tengo un sitio de WordPress en ella. Lo haré pronto.

2 Me gusta