You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When creating or renewing users via the Admin API (PATCH /api/v2/admin/user/{uuid}/), the panel database is updated correctly, but sing-box-based protocols (Hysteria2, TUIC, Mieru, Naive) may continue serving an old user list until apply-users / apply_configs is run manually on the server.
VLESS (Xray) works after API update because Xray can hot-reload via API. Hy2/TUIC/Mieru/Naive fail because they depend on regenerated static sing-box config files + service reload.
This makes external automation (billing panels, renewal scripts) appear successful while users cannot connect on several protocols.
Environment
Hiddify Manager: 12.3.3
OS: Ubuntu (multiple VPS nodes)
Invocation: External automation via Admin API (not panel UI)
Affected nodes: 3 independent edge servers (same version, same behavior)
Steps to reproduce
Have an existing user with Hy2/TUIC/Mieru/Naive enabled.
Let the user expire (or disable), then renew via Admin API:
PATCH /api/v2/admin/user/{uuid}/ with updated package_days, start_date, enable: true, etc.
Confirm API returns success and GET /api/v2/admin/user/{uuid}/ shows the renewed user as enabled.
Try connecting with:
VLESS → works
Hysteria2 / TUIC / Mieru / Naive → auth fails / user not recognized
Summary
When creating or renewing users via the Admin API (
PATCH /api/v2/admin/user/{uuid}/), the panel database is updated correctly, but sing-box-based protocols (Hysteria2, TUIC, Mieru, Naive) may continue serving an old user list untilapply-users/apply_configsis run manually on the server.VLESS (Xray) works after API update because Xray can hot-reload via API. Hy2/TUIC/Mieru/Naive fail because they depend on regenerated static sing-box config files + service reload.
This makes external automation (billing panels, renewal scripts) appear successful while users cannot connect on several protocols.
Environment
Steps to reproduce
PATCH /api/v2/admin/user/{uuid}/with updatedpackage_days,start_date,enable: true, etc.GET /api/v2/admin/user/{uuid}/shows the renewed user as enabled.Actual result
enable=true, correctpackage_days, limits, dates).What we observed on the server
1)
apply_configscan hang indefinitely (non-interactive)apply_configs.sh→install.sh apply_configs→python -m cli_progress ...runs but never exits./opt/hiddify-manager/log/system/0-install.logstayed 0 bytes0-install.lockpresenthiddify-singboxremained active with an oldActiveEnterTimestamp2)
apply-usersoften fails with exit 12 (install lock)Happens when a concurrent/stuck
apply_configsis running or left a stale lock.3) Manual
apply-usersfixes itAfter killing the stuck
cli_progressprocess and running:Expected result
After Admin API user create/renew/update:
apply-usersruns reliably in backgroundhiddify-singboxis reloaded/restartedRelated issues
This appears to be a combination of several open bugs/limitations:
apply_configs/cli_progresshangs without TTY (we hit this directly)commander(...)thread missingcmdargument, so panel-triggered apply-users silently failsSuggested fixes
!sys.stdout.isatty()args=(base_cmd,)tocmd_in_backWorkaround (what we implemented externally)
For anyone automating renewals via API:
With retries when exit 12 (lock held).
Happy to provide additional logs or test a patched build. This is affecting production renewals on multiple nodes.