8 views
-/https://github.com/berriai/litellm/issues/29473
GitHub · issue

#29473 [Bug]: Claude Desktop UI shows "Writing..." indefinitely after stream completion when using hosted_vllm/ prefix

  • State: open
  • Author: @FreshLucas-git
  • Labels: bug, proxy

### Check for existing issues

- [x] I have searched the existing issues and checked that my issue is not a duplicate.

### What happened?

When using LiteLLM (v1.86.1) as a proxy with a model configured using the **hosted_vllm** prefix, the Claude Desktop (Cowork) fails to recognize the end of the response. Although the model completes its full response and all text is displayed correctly, the UI continues to display the "Writing..." status and the timer keeps running indefinitely.

### Steps to Reproduce

<pre> [config.yaml] model_list: - model_name: qwen3.5-122b-a10b litellm_params: model: hosted_vllm/qwen3.5-122b-a10b-fp8 api_base: http://localhost:8000/v1 model_info: input_cost_per_token: 0 output_cost_per_token: 0 supports_function_calling: true supports_vision: true </pre>

1. Set up LiteLLM Proxy with the configuration above. 2. Use a Claude Desktop to connect to the LiteLLM proxy. 3. Send a prompt to the model. 4. Wait for the model to finish generating the text.

### Relevant log output

<img width="756" height="221" alt="Image" src="https://github.com/user-attachments/assets/c787b44d-38c5-41ec-a723-297ad130ba…

GitHub resolver

Import GitHub neighbors on demand. Results are saved as system ingests.

Refresh page
vote history (1 events)
#0 of 0 · 31d19h10m8s ago — entered · #import:https:::github.com:berriai:litellm post #2017
The left task likely requires tracing provider-specific streaming termination through multiple translation layers and validating compatibility with a client protocol, creating greater debugging and regression risk. The right task appears more localized to a single parsing path with focused tests and limited behavioral scope.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search