Рассинхронизация активных пользователей между БД панели и ядром Xray

Возникает ситуация, при которой UUID активного пользователя пропадает из памяти Xray, хотя в самой панели юзер отображается как активный и рабочий.

Клиент пытается установить соединение, но Xray его отбивает, так как в его текущем рабочем конфиге такого пользователя нет:

rejected proxy/vless/encoding: invalid request user id: 36597c9f-de97-4c40-93dc-ef232230fd42

Помогает полная перезагрузка контейнера панели. После рестарта панель заново вычитывает базу и успешно пушит потерянный UUID обратно в Xray, после чего трафик сразу начинает ходить.

Не думаю, что “полная перезагрузка” панели как-то на это влияет. А вот полный перезапуск всех нод – вполне. При перезапуски панели – панель перезапускает все ноды с форс-флагом.

Вы можете самостоятельно это осуществить, фиолетовая кнопка в разделе “Ноды”.

Пока что недостаточно деталей, с помощью который можно конкретнее понять что могло произойти. Нужно смотреть какие были действия с этим пользователем.

Делал так же перезапуск нод и это не помогло. Только рестарт панели вытащил из ситуации

Перезапуск есть двух видов, Graceful и Force – в вашем случае форс обязателен. Именно его панель вызывает при перезапуске.

Действий никаких не было. Эта проблема приходит сама и через время так же уходит.

То есть абсолютно никаких действий с пользователем не было? Ни обновления, ни смены статуса? В таком случае вышеописанная ситуация очень маловероятно что возможна, если только вы напрямую в БД не создавали/удаляли пользователя.

Абсолютно ноль действий в сторону пользователя. Это происходит спонтанно даже в обычном режиме работы. Изначально я думал что проблемы у меня, у провайдера, но ничего не помогало. Начал глядеть логи xray а там это.

С проблемой сталкивался не я один, так же есть знакомый который пытался решить эту проблему.

А вы уверены, что vlessUuid наблюдаемого пользователя совпадает с тем, который указан в логах? Просто само по себе то что в логах не говорит абсолютно ни о чем. Это может быть пользователь, который истек (например) и он пытается подключиться. Очевидно, что истекших или залимиченных пользователей не будет в ядре.

Такое попросту невозможно. Если пользователь активен и с ним никаких действий не совершалось – “пропасть” он не мог.

Вот этот uuid берете и в поиске в таблице пользователей в колонку VlessUUID. Если в поиске находится пользователь и он именно тот, о которым вы писали выше (тот, кто активен и все дела). В чем я сомневаюсь. Надо будет подумать, но как уже написал выше – просто “пропасть” с ноды он не мог, это 100% :slight_smile:

А вот если поиск результатов не даст, или даст, но найденный пользователь истек/залимитирован – то ничего удивительного, что в логах есть подобное.