Problema ao publicar tópico após mudar para um novo servidor

Temos um site WordPress onde usamos o Discourse para fazer login e comentar no WordPress.
Tudo funcionou bem até mudarmos o WordPress (que sempre rodou em um servidor diferente) para um novo IP e um servidor diferente.

Desde então, começamos a receber artigos no editor clássico que têm as configurações mostradas na imagem abaixo e não recebem um link do Discourse, mesmo após serem publicados automaticamente.

Sempre tenho que entrar manualmente em um artigo específico e apenas traduzir o artigo, então o link do Discourse é criado e tudo fica OK.

Alguma ideia de onde procurar a causa do problema?

Alguém está dando pistas sobre onde pode estar o problema?
A única menção de erro que encontrei no log foi esta, mas não consegui rastrear nada sobre esta mensagem.

[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":"Fim do design icônico. Galaxy Buds 3 terão um visual totalmente novo","wp_author_id":"94147","wp_post_id":771981} 
[2024-06-14 06:45:43] publish.INFO: create_post.body_valid {"wp_title":"Fim do design icônico. Galaxy Buds 3 terão um visual totalmente novo","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

Provavelmente vale a pena pesquisar na Meta por update_topic_content.response_body_error :wink:

Olá @Petr_Mišák

Você tem um exemplo de tal tópico? O exemplo em seus logs mostra que o tópico do Discourse foi publicado com sucesso. É isso que essas linhas significam

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

Você pode ver um link para o tópico publicado com sucesso na última linha desses logs, ou seja,

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

O erro do webhook que você vê imediatamente depois sugere um problema com o webhook, mas não é necessariamente indicativo de um problema com a publicação em si.

Se você pudesse executar um novo teste onde reproduz o problema e dar uma olhada nos logs de publish que foram criados, isso nos dará uma visão sobre o problema que você descreveu.

Além disso, você poderia compartilhar o que você quer dizer com “traduzir o artigo”?

Eu sempre tenho que entrar manualmente em um artigo específico e apenas traduzir o artigo
O que exatamente você está fazendo aqui?

Suspeito que sua instalação do Discourse possa ter armazenado em cache a entrada DNS e esteja usando o endereço IP de sua antiga instalação do WP. A maneira mais rápida de tentar isso é reiniciar o contêiner e ver se o problema desaparece.

2 curtidas

O log provavelmente mostra um registro do estado quando eu salvo o artigo manualmente. Desculpe, foi um erro de digitação, deveria ter dito salvar manualmente.

Pensei na questão do DNS também e executei o "./launcher rebuild app" logo após mover o WordPress para o novo servidor, mas talvez tenha sido muito cedo do ponto de vista do DNS. Tentarei novamente então.

Desculpe, só para confirmar, você quer dizer que o log não está conectado ao problema com a publicação automática que você relatou? Se não, você poderia compartilhar um log de um evento de publicação automática?

É muito difícil para mim dizer pelo log se linhas específicas estão relacionadas ao problema ou não. Fiz algumas alterações em relação ao DNS e veremos se ajudou quando o próximo artigo sair às 10 horas.

Portanto, o problema atual é que, quando um artigo no WordPress deveria ser publicado automaticamente em um determinado momento, o link para a comunidade Discourse não é criado. Mas quando, posteriormente, edito o artigo problemático manualmente e apenas o salvo sem nenhuma alteração, o link para a comunidade Discourse é criado.

Na próxima vez que um artigo for publicado, procure por logs com publish.INFO ou publish.ERROR com um timestamp semelhante e compartilhe o que encontrar aqui.

1 curtida

Atualmente, o artigo agendado automaticamente Vaše hodinky Amazfit zřejmě budou ještě lepší! Blíží se velká aktualizace está publicado e ainda sem link para o Discourse

Que tem o ID 772581

Infelizmente, tudo o que vejo no log desde nossa última comunicação são estas informações.

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

Aqui estou enviando o meta log. Não consegui ler nada nele

### Este arquivo está incluído nos downloads de log ###

### Servidor ###

WordPress - 6.5.4
PHP - 8.0.30
MySQL - 11.3.2

### Plugins Ativos ###

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 - Um plugin do 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

### Configurações do WP Discourse (Segredos Excluídos) ###

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, então o seu problema é o antigo problema de publicação automática com posts agendados.

A causa mais provável é que um dos seus outros plugins no seu site também esteja a interagir com o seu sistema de agendamento, produzindo os problemas que outros já viram no passado. Olhando para a sua lista de plugins, este parece ser um candidato possível:

WordPress Editorial Calendar - 3.8.5

Poderia tentar desativá-lo e ver se o problema persiste?

Obrigado pela dica. Preenchi o plugin e veremos às 12h no nosso horário se o artigo sai.

Mas a mesma configuração do plugin também estava no servidor anterior, onde tudo funcionou bem.

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

Que deveria ser este trecho de código $response = $this->discourse_request( $status_url, $args );

Você tem 100% de certeza de que as configurações eram idênticas? Como você verificou isso?

Isso diz respeito a webhooks e não está relacionado ao seu problema.

Sim, a configuração do plugin Discourse foi idêntica no servidor anterior, já que os dados do servidor e do banco de dados foram movidos fisicamente.

Portanto, infelizmente não foi este plugin. Ele está atualmente desativado e o artigo que acabou de sair, vinculando ao Discourse, não foi publicado Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C

Não há nada no log sobre o artigo com ID 772245

Mas se eu abrir o artigo problemático manualmente e salvá-lo. O seguinte aparece no log

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

Pode ser um problema o fato de executarmos o WP cron usando WP CLI?

Sim, esse pode ser o problema. Tente agendar uma postagem na interface do WordPress e veja se isso funciona.

Hmm, quando conectamos um cron normal, não apenas o WP CLI, tudo funciona como deveria.

Mas não entendo por que isso acontece. O plugin do WordPress poderia ser modificado para ser compatível com o WP CLI também?

Não ajudaria @simon

Como você está chamando o cron job? Observe que, ao chamar wp cron, a chamada é afetada por quaisquer parâmetros globais de wp: Config – WP-CLI – WordPress.org. É possível que algo na sua configuração de wp esteja afetando como o job é tratado.

Isso chamará todos os jobs agendados do WordPress cron:

wp cron event run --due-now

Se você estiver apenas chamando wp cron event run publish_future_post, é possível que os eventos necessários para o plugin WP Discourse para publicar um post não estejam sendo acionados. Eu acho que isso é o equivalente a como o WordPress lida internamente com posts agendados:

wp cron event run publish_future_post future_to_publish publish_post transition_post_status

Eu não testei isso. Estou configurando um novo computador e ainda não tenho um site WordPress nele. Farei isso em breve.

2 curtidas