akash-network / akash-network/console
Trial Expired Without Payment — Improve UX & Prevent Backend Errors
Open
Nobody has claimed this yet.
bug
- Dominant language
- TypeScript
- Stars
- 264
- Forks
- 94
- Avg merge
- 18h 49m
- Merged PRs (30d)
- 297
Description
Problem
When a user's trial period ends without a payment, fee grants are not refreshed. As a result:
- Users encounter server errors from the backend.
- Although a proper backend response is already implemented (PR #2444), the UX is poor.
- Repeated failed actions generate noise in monitoring/alerts.
Expected Behavior
Under the same conditions as PR #2444:
- Display a persistent banner informing the user that a top-up is required to continue using the Console.
- Disable UI actions (buttons/links) that would trigger fee-costing operations.
- Prevent users from triggering requests that are guaranteed to fail.
- Send a different email when all credits have been consumed at the end of the trial (from #2447), rather than the generic trial-expired email.
Proposed Solution
- Implement a global banner component shown when:
- Trial is expired
- No payment / insufficient balance
- Fee grants are not available
- Reuse the same condition checks used in PR #2444 to ensure consistency.
- Disable or grey out:
- Buttons
- Links
- Actions that require fee grants
- Provide a CTA (e.g. "Top up balance") linking to the relevant flow.
- Send a distinct email notification when credits are consumed at end of trial (not the generic expiry email).
Benefits
- Clear and actionable feedback to users
- Fewer confusing backend errors
- Reduced noise in backend monitoring
- Better alignment between backend state and frontend UX
Acceptance Criteria
- Banner is shown only under the same conditions as PR #2444
- Banner clearly explains why actions are unavailable
- Fee-costing actions are disabled while banner is active
- No backend error spam from disabled actions
- UX verified with an expired trial + no payment scenario
- Different email sent when credits consumed at end of trial vs. normal trial expiry
References
- Backend handling: https://github.com/akash-network/console/pull/2444
Consolidates: #2447
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing PR #2444 for the existing trial, payment, and fee-grant conditions, then compare the consumed-credit email case in #2447 with the normal expiry flow. Trace the frontend entry point for global notices and fee-costing actions, plus the email notification path. Done means the banner and action disabling match those conditions, and the correct email is sent in each expiry scenario.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100