# DELETE /api/nodes/{uuid} возвращает 204, но нода остаётся в БД и продолжает опрашиваться

**URL:** https://f.docs.rw/t/topic/635
**Category:** Баг-репорты
**Created:** 2026-08-28T15:55:44Z
**Posts:** 3

## Post 1 by @grouwep — 2026-08-28T15:55:44Z

**Окружение**

- Панель: `remnawave/backend:latest`, версия 3.3.2
- Нода: `remnawave/node:latest`, 3.3.2
- PostgreSQL 18.3, Valkey 9.0.3, nginx 1.28

**Что происходит**

Нода, которая никогда не поднималась (DNS её адреса не резолвится, статус в панели — красный, трафик 0 B, версия не определена), не удаляется ни из UI, ни через API.

**Шаги воспроизведения**

1. Добавить ноду с заведомо несуществующим адресом, например `test.example.host:2222`.
2. Нажать «Удалить» в карточке ноды.

**Ожидается**

Нода удаляется, health check по ней прекращается.

**По факту**

- Браузер получает `HTTP 204` — по OpenAPI это успех (`"204": { "description": "Operation successful, no content returned" }`).
- Карточка после Ctrl+Shift+R остаётся на месте.
- В логах панели в момент запроса **нет ни одной записи** — ни об удалении, ни об ошибке.
- Строка в БД остаётся:

```
docker exec -it remnawave-db psql -U postgres -d postgres -c "select uuid, name, address, is_disabled from nodes;"

                 uuid | name | address | is_disabled
--------------------------------------+-----------+-------------------+-------------
 4190a099-...-f1b7eefae0d1 | Singapore | singa.example.host| f
```

- Health check продолжает крутиться каждые 10 секунд:

```
WARN [NodeHealthCheckQueueProcessor] Node 4190a099-...-f1b7eefae0d1, singa.example.host:2222 – health check attempt 1 of 2, message: "getaddrinfo ENOTFOUND singa.example.host"
WARN [NodeHealthCheckQueueProcessor] Node 4190a099-...-f1b7eefae0d1, singa.example.host:2222 – health check attempt 2 of 2, message: "getaddrinfo ENOTFOUND singa.example.host"
WARN [NodeHealthCheckQueueProcessor] Lost connection to Node 4190a099-...-f1b7eefae0d1, singa.example.host:2222, message: "getaddrinfo ENOTFOUND singa.example.host"
```

**Что уже проверено**

```
docker exec -it remnawave-db psql -U postgres -d postgres -c "SELECT conrelid::regclass AS child_table, conname, confdeltype FROM pg_constraint WHERE confrelid = 'nodes'::regclass;"

           child_table | conname | confdeltype
----------------------------------+-------------------------------------------------+-------------
 nodes_usage_history | nodes_usage_history_node_uuid_fkey | c
 config_profile_inbounds_to_nodes | config_profile_inbounds_to_nodes_node_uuid_fkey | c
 infra_billing_nodes | infra_billing_nodes_node_uuid_fkey | c
 hosts_to_nodes | hosts_to_nodes_node_uuid_fkey | c
 nodes_user_usage_history | nodes_user_usage_history_node_id_fkey | c
 user_traffic | user_traffic_last_connected_node_uuid_fkey | n
 node_meta | node_meta_node_id_fkey | c
 torrent_blocker_reports | torrent_blocker_reports_node_id_fkey | c
```

Ручной `DELETE FROM nodes WHERE uuid = '...'` отрабатывает без ошибок и каскад срабатывает корректно, то есть на уровне схемы препятствий нет.

**Обходной путь**

```
docker exec remnawave-db pg_dump -U postgres postgres > backup.sql
docker exec -it remnawave-db psql -U postgres -d postgres -c "DELETE FROM nodes WHERE uuid = '<uuid>';"
docker exec -it remnawave-redis valkey-cli flushall
docker compose restart remnawave
```

Без `flushall` повторяющаяся задача health-check остаётся в очереди и продолжает логировать несуществующую ноду.

---

## Post 2 by @remnawave — 2026-08-28T16:05:57Z

Пришлите полный лог панели.

redis/valkey кстати говоря, флашить необязательно. Панель самостоятельно очищает его при запуске.

---

## Post 3 by @grouwep — 2026-08-28T16:28:31Z

Полный лог приложить не смогу, контейнер панели пересоздавался, и json-log исходного инстанса удалился вместе с ним. Постоянный сбор логов в файл теперь настроил.

Воспроизвести не удалось строку ноды возвращал из `pg_dump`, удаляется штатно. Тогда помог обычный `docker compose restart remnawave`.

Раз воспроизведения нет, тему можно закрывать. Если повторится, приложу лог сразу.
