From 0c545490b61baec930f10adc86652a7e5cf5d378 Mon Sep 17 00:00:00 2001 From: Fringg Date: Thu, 16 Apr 2026 04:50:13 +0300 Subject: [PATCH] fix: show menu buttons for limited (traffic exhausted) subscriptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When Remnawave webhook set subscription status to 'limited' (traffic exhausted), the main menu hid ALL buttons (connect, subscription, buy traffic) because is_active returns False for non-'active' status. Now 'limited' is treated as active for UI purposes — the subscription is not expired, just traffic-exhausted. Users can see the "Buy traffic" button precisely when they need it most. --- app/handlers/start.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/handlers/start.py b/app/handlers/start.py index 2b633091..fc43a017 100644 --- a/app/handlers/start.py +++ b/app/handlers/start.py @@ -344,8 +344,9 @@ def _calculate_subscription_flags(subscription): return False, False actual_status = getattr(subscription, 'actual_status', None) - has_active_subscription = actual_status in {'active', 'trial'} - subscription_is_active = bool(getattr(subscription, 'is_active', False)) + # 'limited' subscriptions are still active (traffic exhausted, but subscription not expired) + has_active_subscription = actual_status in {'active', 'trial', 'limited'} + subscription_is_active = bool(getattr(subscription, 'is_active', False)) or actual_status == 'limited' return has_active_subscription, subscription_is_active