Skip to content

🔄 Upstream Sync: LiteLLM v1.81.0-stable - #83

Closed
Cartofante wants to merge 7463 commits into
carto/mainfrom
upstream-sync/v1.81.0-stable
Closed

🔄 Upstream Sync: LiteLLM v1.81.0-stable#83
Cartofante wants to merge 7463 commits into
carto/mainfrom
upstream-sync/v1.81.0-stable

Conversation

@Cartofante

Copy link
Copy Markdown
Collaborator

🔄 Upstream Sync: LiteLLM v1.81.0-stable

Syncs CARTO's LiteLLM fork with upstream stable release v1.81.0-stable.

Metric Value
Version 1.79.1v1.81.0-stable
Commits 7405
Files Changed 3565
Upstream Release v1.81.0-stable

Caution

⚠️ DO NOT SQUASH MERGE THIS PR

Use "Create a merge commit" only. Squashing destroys upstream history and breaks future syncs.


🧪 Pre-Merge Checklist

  • CI checks pass (lint, tests, Docker build)
  • CARTO customizations preserved
  • pyproject.toml version matches upstream

📊 Release Information (click to expand)
🔀 Branch Flow (click to expand)
  1. BerriAI/litellm:main merged into CartoDB/litellm:main
  2. ✅ Created dedicated sync branch: upstream-sync/v1.81.0-stable
  3. 📝 This PR: upstream-sync/v1.81.0-stablecarto/main

[!NOTE]
Why a dedicated branch? Allows pushing conflict resolution commits directly to this PR.

📝 CARTO-Specific File Guidelines (click to expand)

When reviewing or resolving conflicts:

✅ Keep CARTO Versions (Ours)

  • .github/workflows/carto_*.yaml - CARTO workflows
  • .github/workflows/carto-*.yml - CARTO workflows
  • CARTO_*.md, docs/CARTO_*.md - CARTO documentation

🔄 Accept Upstream (Theirs)

  • pyproject.toml - Version field
  • litellm/ - Core library code
  • tests/ - Upstream tests
  • requirements.txt - Dependencies

⚠️ Manual Review Required

  • Dockerfile, docker/Dockerfile.non_root - CARTO customizations
  • Makefile - Check # CARTO: sections
🔧 Conflict Resolution (click to expand)

If this PR has conflicts:

Option 1: Automated (Recommended)

The carto-upstream-sync-resolver workflow triggers automatically.

What it does:

  1. 🤖 Detects conflicts → 🔀 Merges carto/main → ✏️ Resolves conflicts → 🧪 Runs tests → 📌 Pushes to this PR

You just need to: Wait for resolution commits, verify CARTO customizations, merge.

[!TIP]
Single PR workflow! No separate resolution PR needed.

Option 2: Manual Resolution

git fetch origin
git checkout upstream-sync/v1.81.0-stable
git merge origin/carto/main  # Creates conflicts
# ... resolve conflicts ...
make lint && make test-unit
git push origin upstream-sync/v1.81.0-stable
📚 Documentation Links (click to expand)

🤖 This PR was automatically created by the carto-upstream-sync workflow.

Harshit28j and others added 30 commits January 25, 2026 23:07
* feat: add clientip and user agent in metrics

* fix: lint errors

* Add model id and other req labels

---------

Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
* add timeout to onyx guardrail

* add tests
Automatic sync from upstream BerriAI/litellm
Preparing for v1.81.0-stable release

Strategy: Merge with history preservation (main mirrors upstream)
…s_hook (BerriAI#19670)

* fix(proxy): use return value from CustomLogger.async_post_call_success_hook

Previously the return value was ignored for CustomLogger callbacks,
preventing users from modifying responses. Now the return value is
captured and used to replace the response (if not None), consistent
with CustomGuardrail and streaming iterator hook behavior.

Fixes issue with custom_callbacks not being able to inject data into
LLM responses.

* fix(proxy): also fix async_post_call_streaming_hook to use return value

Previously the streaming hook only used return values that started with
"data: " (SSE format). Now any non-None return value is used, consistent
with async_post_call_success_hook and streaming iterator hook behavior.

Added tests for streaming hook transformation.

---------

Co-authored-by: Gabriele Michelli <michelligabriele0@gmail.com>
Adds support for Anthropic-style 'thinking' parameter in hosted_vllm,
converting it to OpenAI-style 'reasoning_effort' since vLLM is
OpenAI-compatible.

This enables users to use Claude Code CLI with hosted vLLM models
like GLM-4.6/4.7 through the /v1/messages endpoint.

Mapping (same as Anthropic adapter):
- budget_tokens >= 10000 -> "high"
- budget_tokens >= 5000  -> "medium"
- budget_tokens >= 2000  -> "low"
- budget_tokens < 2000   -> "minimal"

Fixes BerriAI#19761
- Added a Pydantic validator to convert empty string inputs for max_budget to None, preventing float parsing errors from the frontend.
- Modified the internal user update logic to explicitly allow max_budget to be None, ensuring the value isn't filtered out and can be reset to unlimited in the database.
- Added unit tests for validation and logic.

 Closes BerriAI#19781
…t user (BerriAI#19795)

- Create a test user with auto_create_key=False to ensure known starting state
- Filter get_users by user_ids to target only the test user
- Verify initial key count is 0 before creating a key
- Clean up test user after test completes
- This ensures consistent behavior across CI and local environments
…BerriAI#19797)

- Add test_get_valid_args in test_router_helper_utils.py to cover get_valid_args
- Use encoding='utf-8' in router_code_coverage.py for cross-platform file reads
…tion error (BerriAI#19801)

Mock _create_mcp_client to avoid network calls in health checks.
This prevents asyncio.CancelledError when the test teardown closes
the event loop while health checks are still pending.

The test focuses on conversion logic (access_groups, description)
not health check functionality, so mocking the network call is appropriate.
…19803)

* fix: make HTTPHandler mockable in OIDC secret manager tests

- Add _get_oidc_http_handler() factory function to make HTTPHandler
  easily mockable in tests
- Update test_oidc_github_success to patch factory function instead
  of HTTPHandler directly
- Update Google OIDC tests for consistency
- Fixes test_oidc_github_success failure where mock was bypassed

This change allows tests to properly mock HTTPHandler instances used
for OIDC token requests, fixing the test failure where the mock was
not being used.

* fix: patch base_llm_http_handler method directly in container tests

- Use patch.object to patch container_create_handler method directly
  on the base_llm_http_handler instance instead of patching the module
- Fixes test_provider_support[openai] failure where mock wasn't applied
- Also fixes test_error_handling_integration with same approach

The issue was that patching 'litellm.containers.main.base_llm_http_handler'
didn't work because the module imports it with 'from litellm.main import',
creating a local reference. Using patch.object patches the method on the
actual object instance, which works regardless of import style.

* fix: resolve flaky test_openai_env_base by clearing cache

- Add cache clearing at start of test_openai_env_base to prevent cache pollution
- Ensures no cached clients from previous tests interfere with respx mocks
- Fixes intermittent failures where aiohttp transport was used instead of httpx
- Test-only change with low risk, no production code modifications

Resolves flaky test marked with @pytest.mark.flaky(retries=3, delay=1)
Both parametrized versions (OPENAI_API_BASE and OPENAI_BASE_URL) now pass consistently

* test: add explicit mock verification in test_provider_support

- Capture mock handler with 'as mock_handler' for explicit validation
- Add assert_called_once() to verify mock was actually used
- Ensures test verifies no real API calls are made
- Follows same pattern as test_openai_env_base validation
* cache control for user messages and system messages

* add cache createion tokens in reponse

* cache controls in tool calls and assistant turns

* refactor with _should_preserve_cache_control

* add cache control unit tests

* use simpler cache creation token count logic

* use helper function

* remove unused function

* fix unit tests
* enable progress notifications for MCP tool calls

* adjust mcp test
… variable (BerriAI#19780)

* fix: add CLI_JWT_EXPIRATION_HOURS

* docs: CLI_JWT_EXPIRATION_HOURS

* fix: get_cli_jwt_auth_token

* test_get_cli_jwt_auth_token_custom_expiration
fix(ui): prevent clearing content filter patterns when editing guardrail
[Infra] CI/CD - Fixing Flaky Tests in OIDC and Email
Fix(BerriAI#19781): Unable to reset user max budget to unlimited
…iAI#19826)

* Fix PLR0915: Extract system message handling to reduce statement count

* fix mypy

* fix: add host_progress_callback parameter to mock_call_tool in test

The test_call_tool_without_broken_pipe_error was failing because the mock function did not accept the host_progress_callback keyword argument that the actual implementation passes to client.call_tool(). Updated the mock to accept this parameter to match the real implementation signature.

* fixing flaky tests around oidc and email

* Add documentation comment to test file

* add retry

* add dependency

* increase retry

---------

Co-authored-by: yuneng-jiang <yuneng.jiang@gmail.com>
@Cartofante

Copy link
Copy Markdown
Collaborator Author

✅ CI Fix Complete

Fixes applied and pushed to this PR.

Step Status
🔍 Analyze failures ✅ Complete
✏️ Apply fixes ✅ Complete
📌 Push fixes ✅ Complete

Note

CI will re-run automatically. Monitor check results below.

Next Steps

  1. Wait for CI checks to complete
  2. If failures persist, manual review may be needed
  3. Merge when all checks pass
🔧 Workflow Details (click to expand)

Workflow Run: https://github.com/CartoDB/litellm/actions/runs/21500309767

@Cartofante

Copy link
Copy Markdown
Collaborator Author

🔧 CI Auto-Fix Started

Status: ⏳ In progress...

Claude Code (Opus 4.5) is analyzing and fixing CI failures.

Failed Checks:

  • test: FAILURE
Step Status
🔍 Analyze failures In progress
✏️ Apply fixes Pending
📌 Push fixes Pending

Note

This may take 15-30 minutes. Fixes will be pushed directly to this PR.

View workflow run →

- Added missing reconstruct_model_name function to core_helpers.py
- Fixed CredentialsPanel TypeScript error (component now uses hooks internally)

CARTO customizations preserved: All

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@Cartofante

Copy link
Copy Markdown
Collaborator Author

✅ CI Failures Fixed (CARTO-first strategy)

CARTO Customizations Status: ✅ All preserved

Fixes Applied:

File Issue Fix
litellm/litellm_core_utils/core_helpers.py Missing reconstruct_model_name function Added function from upstream v1.81.0
ModelsAndEndpointsView.tsx TypeScript error: accessToken not in CredentialsPanelProps Removed obsolete props (component now uses hooks internally)

Root Cause:

  1. Python tests failing: The reconstruct_model_name function was imported by litellm_logging.py but was never included in the merge resolution of core_helpers.py
  2. Docker build failing: The CredentialsPanel component was refactored upstream to use internal hooks for accessToken and credentialList, but the calling code in ModelsAndEndpointsView.tsx was still passing old props

Verification:

  • ✅ Python syntax validated
  • ✅ All CARTO customizations preserved

Commit: fa3005826

🤖 Generated with Claude Code

@Cartofante

Copy link
Copy Markdown
Collaborator Author

✅ CI Fix Complete

Fixes applied and pushed to this PR.

Step Status
🔍 Analyze failures ✅ Complete
✏️ Apply fixes ✅ Complete
📌 Push fixes ✅ Complete

Note

CI will re-run automatically. Monitor check results below.

Next Steps

  1. Wait for CI checks to complete
  2. If failures persist, manual review may be needed
  3. Merge when all checks pass
🔧 Workflow Details (click to expand)

Workflow Run: https://github.com/CartoDB/litellm/actions/runs/21500750640

@Cartofante

Copy link
Copy Markdown
Collaborator Author

🔧 CI Auto-Fix Started

Status: ⏳ In progress...

Claude Code (Opus 4.5) is analyzing and fixing CI failures.

Failed Checks:

  • test: FAILURE
Step Status
🔍 Analyze failures In progress
✏️ Apply fixes Pending
📌 Push fixes Pending

Note

This may take 15-30 minutes. Fixes will be pushed directly to this PR.

View workflow run →

Root cause: Circular import error during test initialization.
The error was: "ImportError: cannot import name 'get_llm_provider' from
partially initialized module 'litellm' (most likely due to a circular import)"

Fixes applied:
1. Restored truncated files from upstream that were incomplete after merge:
   - litellm/images/main.py (+267 lines)
   - litellm/litellm_core_utils/prompt_templates/common_utils.py (+177 lines)
   - litellm/litellm_core_utils/prompt_templates/factory.py (+771 lines)
   - litellm/llms/custom_httpx/http_handler.py (+325 lines)
   - litellm/realtime_api/main.py (restored from upstream)
   - litellm/types/router.py (+35 lines)
   - litellm/vector_stores/vector_store_registry.py (+369 lines)

2. Fixed circular imports:
   - litellm/llms/azure/azure.py: Changed litellm.ImageResponse to ImageResponse
   - litellm/llms/bedrock/image_generation/amazon_titan_transformation.py:
     Import get_model_info from litellm.utils instead of litellm
   - litellm/llms/ovhcloud/chat/transformation.py: Direct module imports

The upstream files use proper import patterns (getattr for lazy loading,
direct module imports to avoid circular dependencies) which resolve the
circular import chain that was blocking test initialization.

CARTO Customizations Status: All preserved (no CARTO-specific code was reverted)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@Cartofante

Copy link
Copy Markdown
Collaborator Author

✅ CI Failures Fixed (CARTO-first strategy)

CARTO Customizations Status: ✅ All preserved (no CARTO-specific code was reverted)

Root Cause

The test run was failing with a circular import error:

ImportError: cannot import name 'get_llm_provider' from partially initialized module 'litellm' (most likely due to a circular import)

This occurred during pytest's conftest.py import, before any tests could run.

Diagnosis

The circular import chain was:

  1. litellm/__init__.py imports from .main import *
  2. main.py imports from litellm.realtime_api.main import _realtime_health_check
  3. realtime_api/main.py was importing from litellm import get_llm_provider
  4. But litellm hadn't finished initializing yet → circular import error

Additionally, several files were truncated during the merge:

  • http_handler.py was 126 lines shorter than upstream (used unsafe direct attribute access instead of getattr())
  • factory.py was 477 lines shorter (missing THOUGHT_SIGNATURE_SEPARATOR and related functions)
  • common_utils.py was 137 lines shorter
  • Other files were also incomplete

Fixes Applied

File Fix
realtime_api/main.py Restored from upstream - uses proper direct module imports
http_handler.py Restored from upstream (+325 lines) - uses safe getattr() pattern for lazy-loaded attributes
factory.py Restored from upstream (+771 lines) - adds missing THOUGHT_SIGNATURE_SEPARATOR, _encode_tool_call_id_with_signature, etc.
common_utils.py Restored from upstream (+177 lines) - adds parse_tool_call_arguments and other functions
images/main.py Restored from upstream (+267 lines) - fixes circular import pattern
types/router.py Restored from upstream (+35 lines) - adds GuardrailTypedDict
vector_store_registry.py Restored from upstream (+369 lines) - adds VectorStoreIndexRegistry class
azure/azure.py Changed litellm.ImageResponse to ImageResponse (already imported)
bedrock/.../amazon_titan_transformation.py Import get_model_info from litellm.utils instead of litellm
ovhcloud/chat/transformation.py Use direct module imports instead of from litellm import

Verification

  • python -c "import litellm" succeeds
  • ✅ All modified files pass syntax validation
  • ✅ All modified files pass ruff lint check
  • ✅ No conflict markers remaining in codebase
  • ✅ All CARTO customizations preserved

Commit

5a341b6a22 - fix: resolve CI test failures after upstream merge (CARTO-first)

CI should re-run automatically. The test initialization should now succeed.

🤖 Generated with Claude Code

@Cartofante

Copy link
Copy Markdown
Collaborator Author

✅ CI Fix Complete

Fixes applied and pushed to this PR.

Step Status
🔍 Analyze failures ✅ Complete
✏️ Apply fixes ✅ Complete
📌 Push fixes ✅ Complete

Note

CI will re-run automatically. Monitor check results below.

Next Steps

  1. Wait for CI checks to complete
  2. If failures persist, manual review may be needed
  3. Merge when all checks pass
🔧 Workflow Details (click to expand)

Workflow Run: https://github.com/CartoDB/litellm/actions/runs/21500858867

@Cartofante

Copy link
Copy Markdown
Collaborator Author

🔧 CI Auto-Fix Started

Status: ⏳ In progress...

Claude Code (Opus 4.5) is analyzing and fixing CI failures.

Failed Checks:

  • test: FAILURE
Step Status
🔍 Analyze failures In progress
✏️ Apply fixes Pending
📌 Push fixes Pending

Note

This may take 15-30 minutes. Fixes will be pushed directly to this PR.

View workflow run →

- Restored callback_utils.py from upstream (was truncated in merge):
  - Added missing normalize_callback_names function
  - Added missing process_callback function
  - Added missing add_policy_to_applied_policies_header function
  - Added missing add_guardrail_response_to_standard_logging_object function
  - Added new callback handlers (websearch_interception, datadog_cost_management)
  - Updated initialize_callbacks_on_proxy with LoggingCallbackManager integration

- Fixed TypeScript type error in PriceDataManagementTab.tsx:
  - Changed modelCostMap(accessToken) to modelCostMap() (function takes 0 args)

CARTO customizations preserved:
- No CARTO-specific customizations in callback_utils.py (pure upstream code)
- No CARTO changes affected in UI components

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@Cartofante

Copy link
Copy Markdown
Collaborator Author

✅ CI Failures Fixed (CARTO-first strategy)

CARTO Customizations Status: ✅ All preserved (no CARTO-specific code was reverted)

Root Cause

Test failures: Multiple tests were failing with ImportError: cannot import name 'normalize_callback_names' from 'litellm.proxy.common_utils.callback_utils'. The callback_utils.py file was truncated during the merge (385 lines vs 501 lines in upstream), missing several functions.

Docker build failure: TypeScript type error - modelCostMap(accessToken) was called with 1 argument but the function signature takes 0 arguments.

Fixes Applied

File Issue Fix
litellm/proxy/common_utils/callback_utils.py Missing normalize_callback_names and other functions Restored complete file from upstream v1.81.0
PriceDataManagementTab.tsx modelCostMap(accessToken) wrong signature Changed to modelCostMap()

Functions Restored in callback_utils.py

  • normalize_callback_names - Normalize callback names to lowercase
  • process_callback - Process callbacks with environment variables
  • add_policy_to_applied_policies_header - Add policy to metadata
  • add_guardrail_response_to_standard_logging_object - Add guardrail responses to logging
  • New callback handlers: websearch_interception, datadog_cost_management
  • Updated initialize_callbacks_on_proxy with LoggingCallbackManager integration

Verification

  • ✅ Python syntax validated
  • ✅ Ruff lint passed
  • ✅ No conflict markers remaining
  • ✅ All CARTO customizations preserved

Commit: e321874eab

CI should re-run automatically. All test imports should now resolve correctly.

🤖 Generated with Claude Code

@Cartofante

Copy link
Copy Markdown
Collaborator Author

❌ CI Fix Failed

The automated fix encountered an error.

Step Status
🔍 Analyze failures cancelled
✏️ Apply fixes -
📌 Push fixes -

Warning

Manual intervention required. Check the workflow logs below.

🔧 Troubleshooting (click to expand)

Common issues:

  • Complex merge conflicts requiring human judgment
  • Multiple interrelated failures
  • Test failures requiring code logic changes

Manual fix steps:

  1. Check the workflow logs
  2. Review error messages
  3. Fix issues locally and push

View workflow logs →

@Cartofante

Copy link
Copy Markdown
Collaborator Author

🔧 CI Auto-Fix Started

Status: ⏳ In progress...

Claude Code (Opus 4.5) is analyzing and fixing CI failures.

Failed Checks:

Step Status
🔍 Analyze failures In progress
✏️ Apply fixes Pending
📌 Push fixes Pending

Note

This may take 15-30 minutes. Fixes will be pushed directly to this PR.

View workflow run →

The custom_guardrail.py file was truncated during the merge (599 lines
vs 799 in upstream), missing the ModifyResponseException class which
is imported by multiple test files.

Restored complete file from upstream v1.81.0-stable which includes:
- ModifyResponseException class (lines 38-74)
- render_violation_message method
- raise_passthrough_exception helper
- violation_message_template parameter
- GenericGuardrailAPIInputs type usage
- TYPE_CHECKING imports

This file had no CARTO-specific customizations, so using upstream
version directly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@Cartofante

Copy link
Copy Markdown
Collaborator Author

✅ CI Failures Fixed (CARTO-first strategy)

CARTO Customizations Status: ✅ All preserved (no CARTO code was reverted)

Root Cause

The test run was failing with multiple ImportError exceptions:

ImportError: cannot import name 'ModifyResponseException' from 'litellm.integrations.custom_guardrail'

This affected 10+ test files including:

  • test_add_deployment_no_master_key.py
  • test_caching_routes.py
  • test_chat_completion_metadata.py
  • test_proxy_server.py
  • And others...

Analysis

The custom_guardrail.py file was truncated during the merge (599 lines vs 799 lines in upstream). The missing content included:

Missing Component Lines
ModifyResponseException class 38-74
render_violation_message method 117-136
raise_passthrough_exception helper 138-180
violation_message_template parameter 88
Additional imports (TYPE_CHECKING, Literal, GenericGuardrailAPIInputs) 1-35

Fix Applied

Restored the complete file from upstream v1.81.0-stable. This file had no CARTO-specific customizations - it was simply an incomplete merge artifact.

Verification

  • ✅ Python syntax validated
  • ✅ No conflict markers remaining
  • ✅ All CARTO customizations preserved (file had none)

Commit: e1b0b9e163

🤖 Generated with Claude Code

@Cartofante

Copy link
Copy Markdown
Collaborator Author

✅ CI Fix Complete

Fixes applied and pushed to this PR.

Step Status
🔍 Analyze failures ✅ Complete
✏️ Apply fixes ✅ Complete
📌 Push fixes ✅ Complete

Note

CI will re-run automatically. Monitor check results below.

Next Steps

  1. Wait for CI checks to complete
  2. If failures persist, manual review may be needed
  3. Merge when all checks pass
🔧 Workflow Details (click to expand)

Workflow Run: https://github.com/CartoDB/litellm/actions/runs/21501234601

@Cartofante

Copy link
Copy Markdown
Collaborator Author

🔧 CI Auto-Fix Started

Status: ⏳ In progress...

Claude Code (Opus 4.5) is analyzing and fixing CI failures.

Failed Checks:

  • build-and-push-image-non_root: FAILURE
  • test: FAILURE
Step Status
🔍 Analyze failures In progress
✏️ Apply fixes Pending
📌 Push fixes Pending

Note

This may take 15-30 minutes. Fixes will be pushed directly to this PR.

View workflow run →

… props

Error fixed 1: ImportError: cannot import name 'convert_upload_files_to_file_data'
File: litellm/proxy/common_utils/http_parsing_utils.py
Change: Added missing convert_upload_files_to_file_data function from upstream

Error fixed 2: Type error: '{ accessToken: any; ... proxySettings: ProxySettings | undefined; }' is not assignable to type 'ChatUIProps'
File: ui/litellm-dashboard/src/app/(dashboard)/playground/page.tsx
Change: Removed proxySettings prop that ChatUI doesn't accept

Previous attempts: 5+ commits already tried
This fix addresses: Missing Python function and TypeScript prop mismatch

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@Cartofante

Copy link
Copy Markdown
Collaborator Author

🔧 CI Fix Applied

Error Fixed 1 (Mock Tests):

ImportError: cannot import name 'convert_upload_files_to_file_data' from 'litellm.proxy.common_utils.http_parsing_utils'

Fix Applied:

  • File: litellm/proxy/common_utils/http_parsing_utils.py
  • Change: Added missing convert_upload_files_to_file_data function that was expected by tests but not present after upstream merge

Error Fixed 2 (Docker Build):

Type error: Type '{ accessToken: any; token: string | null; userRole: string; userID: any; disabledPersonalKeyCreation: any; proxySettings: ProxySettings | undefined; }' is not assignable to type 'IntrinsicAttributes & ChatUIProps'

Fix Applied:

  • File: ui/litellm-dashboard/src/app/(dashboard)/playground/page.tsx
  • Change: Removed proxySettings prop from ChatUI call since the component doesn't accept it

Verification: Pushed to branch, CI will re-run automatically.


Fix attempt #6 - If this fails, I'll analyze the new errors and try again.

@Cartofante

Copy link
Copy Markdown
Collaborator Author

✅ CI Fix Complete

Fixes applied and pushed to this PR.

Step Status
🔍 Analyze failures ✅ Complete
✏️ Apply fixes ✅ Complete
📌 Push fixes ✅ Complete

Note

CI will re-run automatically. Monitor check results below.

Next Steps

  1. Wait for CI checks to complete
  2. If failures persist, manual review may be needed
  3. Merge when all checks pass
🔧 Workflow Details (click to expand)

Workflow Run: https://github.com/CartoDB/litellm/actions/runs/21501361595

@Cartofante

Copy link
Copy Markdown
Collaborator Author

🔧 CI Auto-Fix Started

Status: ⏳ In progress...

Claude Code (Opus 4.5) is analyzing and fixing CI failures.

Failed Checks:

  • test: FAILURE
Step Status
🔍 Analyze failures In progress
✏️ Apply fixes Pending
📌 Push fixes Pending

Note

This may take 15-30 minutes. Fixes will be pushed directly to this PR.

View workflow run →

Error fixed: ImportError: cannot import name 'create_response' from 'litellm.proxy.common_request_processing'
File: litellm/proxy/common_request_processing.py
Change: Added create_response and _extract_error_from_sse_chunk functions, and JSONResponse import

These functions were missing after the upstream merge. They are required by proxy_server.py
and are used for streaming response error handling.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@Cartofante

Copy link
Copy Markdown
Collaborator Author

❌ CI Fix Failed

The automated fix encountered an error.

Step Status
🔍 Analyze failures cancelled
✏️ Apply fixes -
📌 Push fixes -

Warning

Manual intervention required. Check the workflow logs below.

🔧 Troubleshooting (click to expand)

Common issues:

  • Complex merge conflicts requiring human judgment
  • Multiple interrelated failures
  • Test failures requiring code logic changes

Manual fix steps:

  1. Check the workflow logs
  2. Review error messages
  3. Fix issues locally and push

View workflow logs →

@Cartofante

Copy link
Copy Markdown
Collaborator Author

🔧 CI Auto-Fix Started

Status: ⏳ In progress...

Claude Code (Opus 4.5) is analyzing and fixing CI failures.

Failed Checks:

Step Status
🔍 Analyze failures In progress
✏️ Apply fixes Pending
📌 Push fixes Pending

Note

This may take 15-30 minutes. Fixes will be pushed directly to this PR.

View workflow run →

@Cartofante

Copy link
Copy Markdown
Collaborator Author

❌ CI Fix Failed

The automated fix encountered an error.

Step Status
🔍 Analyze failures cancelled
✏️ Apply fixes -
📌 Push fixes -

Warning

Manual intervention required. Check the workflow logs below.

🔧 Troubleshooting (click to expand)

Common issues:

  • Complex merge conflicts requiring human judgment
  • Multiple interrelated failures
  • Test failures requiring code logic changes

Manual fix steps:

  1. Check the workflow logs
  2. Review error messages
  3. Fix issues locally and push

View workflow logs →

@mateo-di

Copy link
Copy Markdown
Collaborator

Closing due to messy commit history from CI Fixer iterations. Will re-trigger with improved CI Fixer that reads full logs and understands the feedback loop better.

@mateo-di mateo-di closed this Jan 30, 2026
@mateo-di
mateo-di deleted the upstream-sync/v1.81.0-stable branch January 30, 2026 02:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.