Yuneng Jiang
9207dac2c2
chore: fixes
Unit Tests: Caching (Redis) / caching-redis (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-db (auth-checks, tests/proxy_unit_tests/test_auth_checks.py tests/proxy_unit_tests/test_user_api_key_auth.py, 20, 8) (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-db (key-generation, tests/proxy_unit_tests/test_key_generate_prisma.py, 30, 0) (push) Has been cancelled
Unit Tests: Proxy DB Operations / proxy-db (remaining, tests/proxy_unit_tests --ignore=tests/proxy_unit_tests/test_key_generate_prisma.py --ignore=tests/proxy_unit_tests/test_auth_checks.py --ignore=tests/proxy_unit_tests/test_user_api_key_auth.py, 20, 8) (push) Has been cancelled
Unit Tests: Security / security (push) Has been cancelled
2026-04-05 00:35:14 -07:00
OpenClaw
19b1220b6d
fix: parse actual status code from Bedrock JSON error response & remove unused test imports
...
- Parse status_code/statusCode from Bedrock error JSON instead of hardcoding 400
- Remove unused imports (json, AsyncMock, MagicMock) from test file
Addresses Greptile review feedback on PR #20881
2026-02-14 00:58:11 +00:00
Shin
80fd24f903
fix(bedrock): handle JSON error responses in streaming instead of ChecksumMismatch
...
When Bedrock returns a JSON error response (e.g., for invalid inference
profile ARN format), the code was feeding it into botocore's EventStreamBuffer
which expects binary event stream framing. This caused ChecksumMismatch
errors that masked the actual Bedrock error message.
This fix:
- Catches ChecksumMismatch in iter_bytes/aiter_bytes
- Attempts to parse accumulated bytes as JSON error
- Raises BedrockError with the actual error message
- Falls back to a generic error for malformed responses
Fixes #20589
2026-02-10 17:33:07 +00:00
michelligabriele
969710477f
fix(mcp): resolve OAuth2 root endpoints returning "MCP server not found" ( #20784 )
...
When MCP SDK hits root-level /register, /authorize, /token without
server name prefix, auto-resolve to the single configured OAuth2
server. Also fix WWW-Authenticate header to use correct public URL
behind reverse proxy.
2026-02-09 19:58:37 -08:00
Shivam Rawat
1ee43b11de
[Fix] prevent shared backend model key from being polluted by per-deployment custom pricing ( #20679 )
...
* bug: custom price override for models
* added associated test
2026-02-09 19:38:44 -08:00
Ishaan Jaff
36e0361187
[UI] M2M OAuth2 UI Flow ( #20794 )
...
* add has_client_credentials
* MCPOAuth2TokenCache
* init MCP Oauth2 constants
* MCPOAuth2TokenCache
* resolve_mcp_auth
* test fixes
* docs fix
* address greptile review: min TTL, env-configurable constants, tests, docs
- Fix zero-TTL edge case: floor at MCP_OAUTH2_TOKEN_CACHE_MIN_TTL (10s)
- Make all MCP OAuth2 constants env-configurable via os.getenv()
- Move test file to follow 1:1 mapping convention (test_oauth2_token_cache.py)
- Add MCP OAuth doc page (mcp_oauth.md) with M2M and PKCE sections
- Update FAQ in mcp.md to reflect M2M support
- Add E2E test script and config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix mypy lint
* fix oauth2
* ui feat fixes
* test M2M
* test fix
* ui feats
* ui fixes
* ui fix client ID
* fix: backend endpoints
* docs fix
* fixes greptile
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 19:28:02 -08:00
yuneng-jiang
b70f97e653
Merge pull request #20790 from BerriAI/litellm_ui_inv_user_msg
...
[Feature] UI - Invite User: Email Integration Alert
2026-02-09 18:04:17 -08:00
Ishaan Jaff
19024e0602
[Feat] MCP Oauth2 Fixes - Add support for MCP M2M Oauth2 support ( #20788 )
...
* add has_client_credentials
* MCPOAuth2TokenCache
* init MCP Oauth2 constants
* MCPOAuth2TokenCache
* resolve_mcp_auth
* test fixes
* docs fix
* address greptile review: min TTL, env-configurable constants, tests, docs
- Fix zero-TTL edge case: floor at MCP_OAUTH2_TOKEN_CACHE_MIN_TTL (10s)
- Make all MCP OAuth2 constants env-configurable via os.getenv()
- Move test file to follow 1:1 mapping convention (test_oauth2_token_cache.py)
- Add MCP OAuth doc page (mcp_oauth.md) with M2M and PKCE sections
- Update FAQ in mcp.md to reflect M2M support
- Add E2E test script and config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix mypy lint
* fix oauth2
* remove old files
* docs fix
* address greptile comments
* fix: atomic lock creation + validate JSON response shape
- Use dict.setdefault() for atomic per-server lock creation
- Add isinstance(body, dict) check before accessing token response fields
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: replace asserts with proper guards, wrap HTTP errors with context
- Replace `assert` statements with `if/raise ValueError` (asserts can be
disabled with python -O in production)
- Wrap `httpx.HTTPStatusError` to provide a clear error message with
server_id and status code
- Add tests for HTTP error and non-dict JSON response error paths
- Remove unused imports
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:35:11 -08:00
michelligabriele
35eb303098
fix(prometheus): sanitize label values to prevent metric scrape failures ( #20600 )
...
* fix(prometheus): sanitize label values to prevent metric scrape failures
Unicode characters like U+2028 (Line Separator) in Prometheus label values
break the text exposition format, causing scrapers (e.g. Datadog) to fail
parsing the entire /metrics endpoint. One bad label value causes ALL metrics
to be lost, not just the affected metric.
Add _sanitize_prometheus_label_value() and apply it in prometheus_label_factory()
and all direct .labels() call sites.
* fix(prometheus): handle non-string label values in sanitization
Coerce non-string values (int, bool, float) to str before applying
sanitization, preventing AttributeError on .replace() calls.
* fix(prometheus): run sanitization on coerced non-string values
Non-string values should be coerced to str and then sanitized (not
returned early), so their string representations also get cleaned.
* fix(prometheus): widen type hint to Optional[Any] for label value sanitization
2026-02-09 15:48:59 -08:00
yuneng-jiang
a41a4b41f5
Text changes
2026-02-09 15:20:39 -08:00
yuneng-jiang
145ef7d388
extending timeout for long running tests
2026-02-09 15:02:47 -08:00
yuneng-jiang
cbcbbff604
fixing tests
2026-02-09 14:45:08 -08:00
yuneng-jiang
409d12b7a5
Add alert about email notifications
2026-02-09 14:40:51 -08:00
yuneng-jiang
bb17ca15e9
Merge pull request #20785 from BerriAI/litellm_ui_team_info_refactor
...
[Refactor] UI - Team Info: Migrate to AntD Tabs + Table
2026-02-09 14:13:22 -08:00
yuneng-jiang
c2536ee82a
refactor antd tabs and table
2026-02-09 14:05:05 -08:00
yuneng-jiang
f8660a8ab0
Merge pull request #20780 from BerriAI/litellm_ui_coverage_04
...
[Refactor] UI - Remove unused files + Add unit tests
2026-02-09 13:02:42 -08:00
Ishaan Jaff
4555ed37c5
fix(callbacks): allow MAX_CALLBACKS override via env var ( #20781 )
...
* fix(callbacks): allow MAX_CALLBACKS override via env var (#20778 )
* fix(callbacks): allow MAX_CALLBACKS override via env var
- Move MAX_CALLBACKS from logging_callback_manager.py to constants.py
- Add LITELLM_MAX_CALLBACKS env var override (default: 30)
- Add troubleshooting doc explaining the limit and override
Fixes issue where large deployments with 60+ teams using guardrails
would hit the hardcoded MAX_CALLBACKS=30 limit and fail to start.
* docs: add max_callbacks to sidebar navigation
---------
Co-authored-by: shin-bot-litellm <shin-bot-litellm@users.noreply.github.com>
* fix callbacks issue
---------
Co-authored-by: shin-bot-litellm <shin-bot-litellm@berri.ai>
Co-authored-by: shin-bot-litellm <shin-bot-litellm@users.noreply.github.com>
2026-02-09 12:11:32 -08:00
yuneng-jiang
ff5a3acc1c
addressing feedback around tests
2026-02-09 12:07:53 -08:00
yuneng-jiang
fb4daad8d4
refactor: remove some unused files and add tests
2026-02-09 11:50:40 -08:00
yuneng-jiang
9bb7f18795
Merge pull request #20773 from BerriAI/litellm_ui_error_code
...
[Feature] UI - Logs: Show Predefined Error Codes in Filter with User Definable Fallback
2026-02-09 11:42:36 -08:00
yuneng-jiang
a7ed3f240c
Show predefined error codes in UI with user adjustable fallback
2026-02-09 11:08:28 -08:00
Ishaan Jaffer
f2ba120c43
docs fix
2026-02-09 10:59:57 -08:00
Ishaan Jaff
9532ad0fab
docs fix ( #20768 )
2026-02-09 10:03:43 -08:00
Sameer Kankute
136fc698ef
Merge pull request #20601 from Harshit28j/litellm_fix_budget_model_v2
...
fix conflicts with main- (this PR is from upstream/main)
2026-02-09 20:08:27 +05:30
Sameer Kankute
6b2bcdb870
Merge pull request #20483 from BerriAI/litellm_completion_websearch
...
[Feat] Chat completion - Add Websearch support using LiteLLM /search (using web search interception hook)
2026-02-09 17:52:52 +05:30
Sameer Kankute
6158e46f00
Merge pull request #20747 from BerriAI/litellm_image_gen_bas_model_fix
...
Fix: base_model name for body and deplyment name in URL
2026-02-09 17:51:41 +05:30
Sameer Kankute
2d18ae4f9e
Fix mypy issues
2026-02-09 17:44:39 +05:30
Sameer Kankute
125e11d36e
Fix mypy issues
2026-02-09 17:43:52 +05:30
Sameer Kankute
5693e2c785
Merge pull request #20752 from BerriAI/litellm_fix_cicd_9_feb
...
Fix: get_supported_anthropic_messages_params
2026-02-09 17:38:39 +05:30
Sameer Kankute
5702cc7e13
Fix: get_supported_anthropic_messages_params
2026-02-09 17:38:03 +05:30
Sameer Kankute
0b5cb47c03
fix: Missing return statement for async streaming
2026-02-09 17:34:48 +05:30
Sameer Kankute
e5f41ba054
Merge pull request #20733 from BerriAI/litellm_v1_messages_claude_4_6
...
[Feat]Add new claude 4-6 feat for v1/messages
2026-02-09 17:26:40 +05:30
Sameer Kankute
5611974228
Fix : litellm/tests/test_litellm/llms/bedrock/chat/invoke_transformations/test_bedrock_chat_invoke_transformations_anthropic_claude3_transformation.py
2026-02-09 17:18:05 +05:30
Sameer Kankute
ef55d37bf0
Merge branch 'main' into litellm_v1_messages_claude_4_6
2026-02-09 17:14:36 +05:30
Sameer Kankute
30d17c29e4
handle when litellm_parrams might be none
2026-02-09 17:13:39 +05:30
Sameer Kankute
3cf109ed0c
Merge pull request #20745 from BerriAI/litellm_vercel_ai_models
...
Add new vercel ai anthropic models
2026-02-09 17:07:56 +05:30
Sameer Kankute
23088f86bd
Add response schema for vercel ai sonnet 4.5
2026-02-09 17:07:36 +05:30
Sameer Kankute
493eaa6200
Merge pull request #20748 from BerriAI/litellm_anthropic_output_config
...
Add output_config as supported param
2026-02-09 17:04:08 +05:30
Sameer Kankute
a322db02ab
Merge pull request #20696 from BerriAI/litellm_oss_staging_02_08_2026
...
Litellm oss staging 02 08 2026
2026-02-09 16:59:54 +05:30
Sameer Kankute
285c00ac20
Merge pull request #20710 from tsachis/fix-video-list-pagination-id-encoding
...
Fix video list pagination cursors not encoded with provider metadata
2026-02-09 16:41:52 +05:30
Sameer Kankute
1b2278951d
Add output_config as supported param
2026-02-09 16:39:21 +05:30
Sameer Kankute
f929461fc6
Merge pull request #20702 from emerzon/fix/issue-20698-stream-chunk-thinking-blocks
...
fix(streaming): preserve interleaved thinking/redacted_thinking blocks
2026-02-09 16:32:43 +05:30
Sameer Kankute
d35691aa0c
Fix: base_model name for body and deplyment name in URL
2026-02-09 16:25:46 +05:30
Sameer Kankute
6c4d6bb15e
Add new vercel ai anthropic models
2026-02-09 16:00:01 +05:30
Sameer Kankute
2f33445054
Merge pull request #20738 from BerriAI/main
...
merge main
2026-02-09 15:07:39 +05:30
Sameer Kankute
a924a07255
Merge pull request #20736 from CAFxX/verificationtoken-index
...
add missing indexes on VerificationToken table
2026-02-09 14:37:51 +05:30
Sameer Kankute
c48986ba8d
Fix double json import
2026-02-09 14:21:43 +05:30
Sameer Kankute
1f04115fb0
Fix: is_web_search_tool_chat_completion
2026-02-09 13:59:05 +05:30
Sameer Kankute
7fa4d090ec
Add doc for chat completion web search
2026-02-09 13:51:26 +05:30
Sameer Kankute
4e94ecb08d
Add tests for WebSearch interception with chat completions API
2026-02-09 13:41:29 +05:30