Problème lors de la publication d'un sujet après avoir migré vers un nouveau serveur

Nous avons un site WordPress où nous utilisons Discourse pour nous connecter et commenter sur WordPress.
Tout fonctionnait bien jusqu’à ce que nous déplacions WordPress (qui a toujours fonctionné sur un serveur différent) vers une nouvelle adresse IP et un nouveau serveur.

Depuis, nous avons commencé à recevoir des articles dans l’éditeur classique qui ont les paramètres montrés dans l’image ci-dessous et qui n’obtiennent pas de lien Discourse, même après leur publication automatique.

Je dois toujours aller manuellement dans un article particulier et simplement traduire l’article, puis le lien Discourse est créé et tout va bien.

Des idées où chercher la cause du problème ?

Quelqu’un donne-t-il des indices sur l’endroit où pourrait se trouver le problème ?
La seule mention d’erreur que j’ai trouvée dans le journal est celle-ci, mais je n’ai pas réussi à retrouver quoi que ce soit sur ce message.

[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

Il vaut probablement la peine de rechercher update_topic_content.response_body_error sur Meta :wink:

Salut @Petr_Mišák

Avez-vous un exemple d’un tel sujet ? L’exemple dans vos journaux montre que le sujet Discourse a été publié avec succès. C’est ce que signifient ces lignes :

[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"} 

Vous pouvez voir un lien vers le sujet publié avec succès dans la dernière ligne de ces journaux, c’est-à-dire :

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

L’erreur webhook que vous voyez immédiatement après suggère un problème avec le webhook, mais ce n’est pas nécessairement une indication d’un problème de publication en soi.

Si vous pouviez exécuter un nouveau test où vous reproduisez le problème, et examiner les journaux publish qui ont été créés, cela nous donnera un aperçu du problème que vous avez décrit.

Aussi, pourriez-vous expliquer ce que vous entendez par « traduire l’article » ?

Je dois toujours aller manuellement dans un article particulier et simplement traduire l’article
Que faites-vous exactement ici ?

Je suspecte que votre installation Discourse a mis en cache l’entrée DNS et utilise l’adresse IP de votre ancienne installation WP. Le moyen le plus rapide d’essayer cela est de redémarrer le conteneur et de voir si le problème disparaît.

2 « J'aime »

Le journal montre probablement un enregistrement de l’état lorsque j’enregistre l’article manuellement. Désolé, c’était une faute de frappe, il aurait dû être écrit “enregistrer manuellement”.

J’avais aussi pensé au problème de DNS et j’ai exécuté “./launcher rebuild app” juste après avoir déplacé WordPress vers le nouveau serveur, mais peut-être que c’était trop tôt du point de vue du DNS. Je vais réessayer alors.

Désolé, juste pour confirmer, vous voulez dire que le journal n’est pas lié au problème de publication automatique que vous avez signalé ? Sinon, pourriez-vous partager un journal d’un événement de publication automatique ?

Il m’est très difficile de déterminer à partir du journal si des lignes spécifiques sont liées au problème ou non. J’ai apporté quelques modifications concernant le DNS et nous verrons si cela a aidé lorsque le prochain article sortira à 10 heures.

Le problème actuel est que lorsqu’un article dans WordPress est censé sortir automatiquement à une certaine heure, le lien vers la communauté Discourse n’est pas créé. Mais lorsque je modifie ensuite l’article problématique manuellement et que je le sauvegarde sans aucune modification, le lien vers la communauté Discourse est créé.

La prochaine fois qu’un article sera publié, recherchez les journaux avec publish.INFO ou publish.ERROR avec un horodatage similaire et partagez ce que vous trouvez ici.

1 « J'aime »

Actuellement, l’article programmé automatiquement Vaše hodinky Amazfit zřejmě budou ještě lepší! Blíží se velká aktualizace est sorti et toujours aucun lien vers Discourse

Qui a l’ID 772581

Malheureusement, tout ce que je vois dans le journal depuis notre dernière communication est cette information.

[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"}

Voici le journal des métadonnées. Je n’ai rien pu lire dedans

### Ce fichier est inclus dans les téléchargements de journaux ###

### Serveur ###

WordPress - 6.5.4
PHP - 8.0.30
MySQL - 11.3.2

### Plugins actifs ###

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 Google Tag Manager (GTM) pour 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

### Paramètres WP Discourse (Secrets exclus) ###

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, votre problème est l’ancien problème de publication automatique avec les articles programmés.

La cause la plus probable est que l’un de vos autres plugins sur votre site s’accroche également à votre système de planification, produisant les problèmes que d’autres ont rencontrés par le passé. En regardant votre liste de plugins, cela semble être un candidat possible :

WordPress Editorial Calendar - 3.8.5

Pourriez-vous essayer de le désactiver et voir si le problème persiste ?

Merci pour le conseil. J’ai rempli le plugin et nous verrons à 12 heures, heure locale, si l’article sort.

Mais la même configuration de plugin était également sur le serveur précédent, où tout fonctionnait correctement.

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

Ce qui devrait être ce morceau de code $response = $this->discourse_request( $status_url, $args );

Êtes-vous absolument certain que les configurations étaient identiques ? Comment l’avez-vous vérifié ?

Cela concerne les webhooks et n’est pas lié à votre problème.

Oui, la configuration du plugin Discourse était identique sur le serveur précédent, car les données du serveur et de la base de données ont été physiquement déplacées.

Malheureusement, ce n’était pas ce plugin. Il est actuellement désactivé et l’article qui vient d’être publié et qui renvoie vers Discourse n’a pas obtenu Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C

Il n’y a rien dans le journal concernant l’article avec l’ID 772245

Mais si j’ouvre manuellement l’article problématique et que je l’enregistre. Voici ce qui apparaît dans le journal

[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"} 

Est-ce que le fait que nous exécutons WP cron en utilisant WP CLI pourrait être un problème ?

Oui, ça pourrait être ça. Essayez de planifier un article dans l’interface utilisateur de Wordpress et voyez si cela fonctionne.

Hmm, quand nous avons branché une tâche cron normale, pas seulement le WP CLI, tout fonctionne comme il se doit.

Mais je ne comprends pas pourquoi c’est le cas. Le plugin WordPress pourrait-il être modifié pour être compatible avec WP CLI également ?

Cela n’aiderait-il pas @simon

Comment appelez-vous la tâche cron ? Notez que lorsque vous appelez wp cron, l’appel est affecté par tous les paramètres globaux de wp : Config – WP-CLI – WordPress.org. Il est possible que quelque chose dans votre configuration wp affecte la manière dont la tâche est traitée.

Ceci appellera toutes les tâches cron WordPress planifiées :

wp cron event run --due-now

Si vous appelez simplement wp cron event run publish_future_post, il est possible que les événements requis par le plugin WP Discourse pour publier un article ne soient pas déclenchés. Je pense que c’est l’équivalent de la manière dont WordPress gère en interne les articles planifiés :

wp cron event run publish_future_post future_to_publish publish_post transition_post_status

Je n’ai pas testé cela. Je suis en train de configurer un nouvel ordinateur et je n’ai pas encore de site WordPress dessus. Je le ferai bientôt.

2 « J'aime »