Пустой content не всегда означает ошибку. Chunk может содержать role, tool arguments, usage, статус или другое типизированное событие.
Проверьте парсер#
читает ли он SSE, а не обычный JSON;
ветвится ли по event type;
допускает ли отсутствие
choices;собирает ли tool arguments из нескольких deltas;
ждёт ли финальное событие завершения;
обрабатывает ли error event.
Поток завершился без финального события#
Считайте ответ неполным. Сохраните уже показанный текст как partial, но не передавайте его дальше как проверенный машинный результат.
Можно ли повторить запрос#
Обычный read-only prompt можно предложить повторить пользователю. Запрос с tools или внешними действиями повторяйте только после проверки, что действие не было выполнено.
Что собрать для диагностики#
endpoint и ID модели;
время с часовым поясом;
request ID;
число успешно прочитанных событий;
тип последнего события;
был ли выполнен tool;
HTTP-статус или ошибка соединения.
Не прикладывайте API-ключ и необезличенный поток.