Project

General

Profile

Actions

Task #6066

open

GET /api/dialogs/ — 500: Null value read for non-null constructor argument [description] of Dialog

Added by Redmine Admin 3 days ago. Updated 3 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Start date:
08/23/2026
Due date:
% Done:

0%

Estimated time:

Description

Симптом

GET https://onerm.fun/api/dialogs/  (Authorization: <user jwt>)
=> 500
"Internal Server Error: Null value read for non-null constructor argument [description] of type: com.onerm.domains.messaging.dialogs.common.models.Dialog"

Причина

Dialog.description объявлен как non-null String, но в БД встречаются строки с description = NULL (в схеме dialogs.description изначально not null, но в проде ограничение фактически не соблюдается / данные созданы вне модели). При маппинге результата запроса DialogsPgRepository.findAllByUser Micronaut Data падает на non-null конструкторе.

Исправление

  • Dialog.description: String? = null
  • DialogDto.description: String? = null
  • Миграция V134__20260823__drop_not_null_from_dialogs_description.sqlalter table dialogs alter column description drop not null;
  • Регрессионный тест DialogsControllerTest.dialogsIndexWorksForUsersWhenDialogHasNoDescription — диалог с description = null отдаётся в индексе с HTTP 200.
Actions #1

Updated by Redmine Admin 3 days ago

Тесты прогнаны локально: 527 тестов, все тесты по диалогам зелёные, включая новый регрессионный DialogsControllerTest.dialogsIndexWorksForUsersWhenDialogHasNoDescription.

Оставшиеся 67 падений — окружение, к этой правке отношения не имеют: отсутствуют локальные файлы кредов (./test_iiko_server_auth.json — 50 шт., yandex_authorized_keys.json, tmp/mock/...) и обращения к внешним API, которые отдают HTML вместо JSON (Bitrix24, Unisender, Checkoffice).

Actions

Also available in: Atom PDF