litellm - 💡(How to fix) Fix [Bug]: /team/info and /team/update response return null for persisted fields (max_budget, spend, model_aliases)

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Code Example

curl -X POST /team/new \
  -H "Authorization: Bearer $MASTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"team_id": "test", "max_budget": 50.0}'
# Response: spend=0.0, max_budget=50.0
---

curl "/team/info?team_id=test" -H "Authorization: Bearer $MASTER_KEY"
# -> spend=null, max_budget=null
---

curl -X POST /team/update \
  -H "Authorization: Bearer $MASTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"team_id": "test", "max_budget": 25.0}'
# Response: spend=null, max_budget=null
---

curl /team/list -H "Authorization: Bearer $MASTER_KEY"
# -> [{"team_id": "test", "spend": 0.0, "max_budget": 25.0, ...}]
---

# /team/info response:
{"team_id": "test", "spend": null, "max_budget": null, "model_aliases": null, ...}

# /team/list response (correct):
[{"team_id": "test", "spend": 0.0, "max_budget": 25.0, "litellm_model_table": {"model_aliases": {...}}, ...}]
RAW_BUFFERClick to expand / collapse

Check for existing issues

  • I have searched the existing issues and checked that my issue is not a duplicate.

What happened?

/team/info and the /team/update response body return null for fields that are correctly persisted in the database. The correct values are only available via /team/list.

Fields affected: max_budget, spend, model_aliases.

For model_aliases specifically, the field appears at the top level in both /team/info and /team/list (always null), but the actual data is nested under litellm_model_table.model_aliases in /team/list only.

This makes it difficult for API consumers to read team state without using /team/list and filtering by team_id.

Steps to Reproduce

  1. Create a team with max_budget:
curl -X POST /team/new \
  -H "Authorization: Bearer $MASTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"team_id": "test", "max_budget": 50.0}'
# Response: spend=0.0, max_budget=50.0 ✓
  1. Read via /team/info:
curl "/team/info?team_id=test" -H "Authorization: Bearer $MASTER_KEY"
# -> spend=null, max_budget=null ✗
  1. Update and check the response:
curl -X POST /team/update \
  -H "Authorization: Bearer $MASTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"team_id": "test", "max_budget": 25.0}'
# Response: spend=null, max_budget=null ✗
  1. Read via /team/list (correct values):
curl /team/list -H "Authorization: Bearer $MASTER_KEY"
# -> [{"team_id": "test", "spend": 0.0, "max_budget": 25.0, ...}] ✓

Relevant log output

# /team/info response:
{"team_id": "test", "spend": null, "max_budget": null, "model_aliases": null, ...}

# /team/list response (correct):
[{"team_id": "test", "spend": 0.0, "max_budget": 25.0, "litellm_model_table": {"model_aliases": {...}}, ...}]

What part of LiteLLM is this about?

Proxy

What LiteLLM version are you on ?

v1.85.0 (also confirmed on v1.83.10)

Twitter / LinkedIn details

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

litellm - 💡(How to fix) Fix [Bug]: /team/info and /team/update response return null for persisted fields (max_budget, spend, model_aliases)