Adicionando um ponto de dados a isso — estamos vendo o que parece ser o mesmo mecanismo subjacente, mas se manifestando de forma diferente.
Observado em: Discourse core + discourse-ai, LLM: GPT-5.1 via OpenAI (conexão de API personalizada, não um modelo pré-configurado).
Evidências de reprodução
Mesma publicação original (em russo, ~2000 caracteres, cabeçalhos/negrito/listas com marcadores/links), traduzida para vários idiomas via tradução de IA nativa:
- Polonês (pl): a estrutura do markdown da imagem incorporada foi perdida — passou de
para um link malformado, sem o prefixo!e o separador|, com o texto alternativo e as dimensões unidos como texto puro. Renderizado como um link clicável em vez de uma imagem incorporada. - Ucraniano (uk): sequências literais
\n\naparecem como texto puro em toda a publicação, no lugar de quebras de parágrafo. O markdown da imagem nesta mesma tradução estava intacto — então a corrupção não está vinculada a um sintoma fixo, ela varia conforme a execução.
Diferentemente do truncamento descrito acima, nosso caso não mostra conteúdo faltando — o texto completo está presente, mas com sequências de escape / sintaxe de markdown corrompidas, em vez de uma saída encurtada. Provedor diferente (OpenAI vs Google aqui), sintoma diferente (corrupção vs truncamento), mesma causa raiz suspeita: StructuredOutput#read_buffered_property caindo de volta para BestEffortJsonParser#extract_key, que não desescapeia sequências de strings JSON (\n permanece literal) e parece também lidar incorretamente com caracteres especiais adjacentes à sintaxe de markdown quando a queda de volta ocorre durante a análise.
Nenhum erro nos logs do Sidekiq ou Rails do nosso lado também — o mesmo comportamento de falha silenciosa.