Expired family license cannot be renewed
- Dominant language
- C#
- Stars
- 20.1k
- Forks
- 1.8k
- Avg merge
- 4d 8h
- Merged PRs (30d)
- 75
Description
### Steps To Reproduce
1. Given an expired family license on self-hosted, go to Admin > Family org > Subscription
### Expected Result
The page should load and I should be able to upload a new license
### Actual Result
The loading spinner keeps loading forever.
In the debugger, the `/oragnizations/x/subscription` endpoint returns:
```
{
"message": "Invalid license. IDX10223: Lifetime validation failed. The token is expired. ValidTo (UTC): '3/18/2026 9:07:04\u202FAM', Current time (UTC): '3/23/2026 10:03:41\u202FAM'.",
"validationErrors": null,
"exceptionMessage": null,
"exceptionStackTrace": null,
"innerExceptionMessage": null,
"object": "error"
}
```
### Screenshots or Videos
### Additional Context
_No response_
### Build Version
5927d80
### Environment
Self-Hosted
### Environment Details
- Ubuntu 22.04
- Docker
### Issue Tracking Info
- [x] I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
Contributor guide
Research direction
Start by tracing the /oragnizations/x/subscription endpoint used by Admin > Family org > Subscription, focusing on the expired-license response shown in the debugger. Reproduce the flow on self-hosted Ubuntu 22.04 with Docker; done means an expired family license page loads and allows a new license to be uploaded instead of leaving the spinner running.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, docker
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100