Estava funcionando perfeitamente, agora não consigo criar um novo tópico

Adoraria fornecer mais detalhes, mas, infelizmente, só tenho a mensagem de erro menos útil possível para trabalhar:

Ocorreu um erro ao publicar esta postagem no Discourse.

Nada aparece nos logs de erro que consigo ver, nem no site nem no Discourse.

Posso vincular a um tópico existente, mas isso ajuda pouco mais do que atualizar os metadados da postagem diretamente.

Existe alguma opção de depuração que eu tenha perdido nas configurações? Ou algum outro jeito de obter uma mensagem de erro útil?

Olá @invisnet

Você abriu o console de desenvolvimento web (no navegador) e verificou erros no console de JS lá?

Agora tenho — nada de relevante, certamente nada sobre o Discourse.

Depois de muita investigação em coisas que eu não deveria precisar ver, encontrei uma mensagem de erro:

Não foi possível verificar a autenticidade do token CSRF.

Que é tão útil quanto a original.

A partir disso, concluo:

  • a versão 2.6.0.beta1 está quebrada,
  • foi um erro fazer a atualização, pois parece não haver como reverter para a 2.5.0,
  • os testes unitários do discourse e/ou do wp-discourse precisam de melhorias,
  • estou fadado ao fracasso até que isso seja corrigido, pois parece não haver como definir manualmente o embed_url para um tópico

Acho que isso é uma solução de certo modo…

Desculpe pela resposta tardia. Estou monitorando a categoria Support > WordPress, mas tenho quase certeza de que não recebi uma notificação sobre este tópico.

A maneira mais fácil de obter uma mensagem de erro detalhada é instalar o plugin Query Monitor – WordPress plugin | WordPress.org English (Canada) e, em seguida, tentar publicar uma postagem no Discourse. O plugin WP Discourse costumava salvar todos os erros em um arquivo de log, mas parou de fazer isso porque vai contra as recomendações do WordPress.

Você recebe um erro ao tentar publicar qualquer postagem no Discourse, ou o problema está ocorrendo apenas com uma postagem específica?

Parece improvável que a atualização para o Discourse 2.6.0.beta1 seja a causa do problema. Houve alguma alteração no seu site WordPress por volta da época em que o plugin parou de funcionar para você?

O erro aparece apenas no production.log no contêiner Docker — nada mais em nenhum outro log ou console (já estou executando o Query Monitor).

Qualquer novo post.

Apenas a atualização do plugin para a versão 2.0.6. No entanto, não é o plugin — já retrocedi através das tags do git sem sucesso.

Estou surpreso que o plugin Query Monitor não esteja mostrando um erro. Eu esperaria ver algo assim, mas com uma mensagem de erro diferente:

Pode valer a pena gerar uma nova chave de API na página de Administração / API do seu Discourse. Certifique-se de que a chave seja uma Chave Global (permite todas as ações). Também verifique se o Nome de Usuário de Publicação está configurado corretamente na aba de configurações da Conexão WP Discourse. Como você consegue vincular a tópicos existentes do Discourse, mas não consegue publicar novos tópicos, parece possível que o problema esteja relacionado às permissões da API.

Uma última coisa a verificar é ver quais valores estão sendo definidos para os campos personalizados da postagem quando você tenta publicar uma postagem do WordPress no Discourse. Se você habilitar os campos personalizados no editor, deverá ver algo semelhante a isso na parte inferior do editor:

Se você puder me informar quais campos estão sendo definidos, talvez eu consiga descobrir a causa do problema.

Eu também estou, mas ele realmente não está mostrando nada. Se estivesse, seria um erro 400 (já que é isso que é relatado em production.log), mas não é.

Atualização: depois de vasculhar o código, vejo que não haverá erro — tudo está sendo capturado; se você ativar relatórios por e-mail (e-mail, mas sem error_log()?), ele informa:

Motivo da falha:
Um código de resposta 400 foi retornado pelo Discourse.
Solicitação Inválida

mas é só isso.

Já fiz isso, sem diferença. Foi um último recurso — o timestamp de “último uso” foi atualizado na chave anterior quando tentei publicar, então sabia que isso não havia mudado de alguma forma, mas achei que valia a pena tentar.

publish_post_category: 23
update_discourse_topic: 0
wpdc_publishing_error: Solicitação Inválida
wpdc_unlisted_topic: 1

É isso. Ah, e antes que você pergunte, acontece o mesmo se eu não definir “Publicar como Não Listado”, mas com a diferença esperada nos metadados do post.

Obrigado pelos detalhes. Vou dar outra olhada nisso quando voltar ao trabalho na segunda-feira.

Não tenho certeza do que pode estar causando a resposta 400. Você poderia tentar instalar o plugin Health Check & Troubleshooting – WordPress plugin | WordPress.org English (Canada) e verificar se ele relata algum problema com seu site WordPress. Quando esse plugin for ativado, uma entrada “Saúde do Site” será adicionada à seção Ferramentas do painel do WordPress. Clicar nesse link e depois ir para a aba Status pode mostrar alguns detalhes úteis.

O plugin Health Check também permite desativar plugins temporariamente apenas para sua própria sessão. Isso pode ser útil para verificar se o problema está relacionado a um conflito com outro plugin — se você tiver qualquer plugin relacionado à segurança instalado no seu site, vale a pena ver se desativá-los resolve o problema.

Infelizmente, esbarrei em um beco sem saída. O plugin Health Check não sugeriu nada útil (o que não é surpresa), e tudo o mais está funcionando perfeitamente.

Encontrei o erro de CSRF ao automatizar o envio de convites, o que significa que houve um erro no seu código; no entanto, neste caso, o plugin não foi alterado, então minha conclusão é que a versão 2.6.0.beta1 está quebrada.

Sei que essa não é uma conclusão popular, mas é a única que tenho no momento.

Editado para adicionar: usei o plugin Health Check para desativar todos os outros plugins — sem diferença.

O problema persiste com as versões 2.6.0.beta2 e 2.1.2.