#28021 [Bug]: Budget windows (budget_limits) on keys cannot be removed once set via UI or API
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
Once a budget window (`budget_limits`) is set on a key, there is no way to remove it — neither through the UI nor the API. All removal attempts either silently fail or return a validation error.
**UI behavior:** - Set a budget window via the UI → works and enforces - Click X to remove the budget window → Save → budget window still present in UI and still enforces
**API behavior:**
| Attempt | Request Body | HTTP Status | Result | |---------|-------------|-------------|--------| | Empty list | `{"key": "sk-...", "budget_limits": []}` | 200 | Budget window still present (silently ignored) | | Null | `{"key": "sk-...", "budget_limits": null}` | 400 | Validation error: "Unable to match input value to any allowed input type" | | Omit field | `{"key": "sk-...", "max_budget": 999}` | 200 | Budget window still present |
The budget window continues to enforce after all removal attempts.
**Workaround:** Set the `max_budget` in the budget window to a very large number, or create a new key.
### Steps to Reproduce
1. Create a team and generate a key:…