Добавлю еще один пример — мы наблюдаем то, что выглядит как тот же самый базовый механизм, но проявляющийся по-разному.
Наблюдается на: Discourse core + discourse-ai, LLM: GPT-5.1 через OpenAI (пользовательское API-соединение, не встроенная модель).
Подтверждение воспроизводимости
Один и тот же исходный пост (на русском, ~2000 символов, заголовки/жирный текст/маркированные списки/ссылки), переведенный на несколько языков через встроенный AI-переводчик:
- Польский (pl): структура встроенного изображения в Markdown потеряна — из
превратился в некорректную ссылку без префикса!и разделителя|, где альтернативный текст и размеры слились в обычный текст. Отображается как кликабельная ссылка вместо встроенного изображения. - Украинский (uk): буквенные последовательности
\n\nотображаются как обычный текст по всему посту вместо разрывов абзацев. Markdown-разметка изображения в этом же переводе осталась целой — так что проблема не связана с одним фиксированным симптомом, она варьируется от запуска к запуску.
В отличие от описанного выше усечения, в нашем случае нет отсутствующего контента — полный текст присутствует, но с поврежденными escape-последовательностями / синтаксисом Markdown, а не с укороченным выводом. Другой провайдер (OpenAI против Google), другой симптом (повреждение против усечения), та же предполагаемая причина: StructuredOutput#read_buffered_property откатывается к BestEffortJsonParser#extract_key, который не раскодировывает JSON-строковые последовательности (\n остается буквальным) и, похоже, также неправильно обрабатывает специальные символы рядом с Markdown-синтаксисом, когда откат происходит во время парсинга.
Ни в логах Sidekiq, ни в логах Rails с нашей стороны ошибок нет — то же самое поведение тихого сбоя.