Cả hai thông báo đều có nghĩa là câu trả lời được truyền theo luồng từ model đã dừng trước khi hoàn tất. “Phản hồi ở trên có thể chưa đầy đủ” được in khi một phần câu trả lời đã đến rồi luồng bị dừng, mất kết nối hoặc hỏng; Claude Code giữ lại phần đã nhận, và trả lời continue sẽ tiếp tục lượt đó. “Luồng phản hồi kết thúc trước khi nhận được bất kỳ dữ liệu hoàn chỉnh nào” có nghĩa là hoàn toàn không nhận được dữ liệu có thể sử dụng, nên Claude Code thử lại cùng yêu cầu mà không truyền theo luồng — và khi việc này tiếp tục xảy ra, nguyên nhân thường là proxy hoặc gateway giữa Claude Code và nhà cung cấp model, như chính thông báo nêu rõ.
Lỗi
API Error: Connection lost mid-response. The response above may be incomplete.
# the same notice for the other causes (Claude Code's error reference):
API Error: Server error mid-response. The response above may be incomplete.
API Error: Your computer went to sleep mid-response. The response above may be incomplete.
API Error: The response stopped arriving. The response above may be incomplete.
API Error: Part of the response never arrived. The response above may be incomplete.
API Error: The response stream was malformed. The response above may be incomplete.
# the older wording of the stall, quoted in reports from July 2026:
API Error: Response stalled mid-stream. The response above may be incomplete.
# when nothing complete arrived at all:
Streaming response ended before any complete data was received. Retrying without
streaming. If this keeps happening, check any proxy or gateway between Claude Code
and your model provider.
# no response headers before the first-byte deadline, which does not run when
# ANTHROPIC_BASE_URL points at a gateway:
API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or
gateway on your network holds responses until they complete, raise API_TIMEOUT_MS
or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer.Tổng quan nguyên nhân và cách khắc phục
| Nguyên nhân | Cách khắc phục |
|---|---|
| Kết nối vẫn mở nhưng ngừng phân phối dữ liệu, và watchdog theo dõi trạng thái nhàn rỗi của Claude Code đã hủy kết nối | Trả lời continue. Nếu các khoảng tạm dừng dài là hợp lệ trên kết nối của bạn, hãy tăng CLAUDE_STREAM_IDLE_TIMEOUT_MS thay vì tắt watchdog. |
| Kết nối bị mất, máy tính chuyển sang chế độ ngủ hoặc máy chủ trả về lỗi giữa chừng khi phản hồi đang được tạo | Trả lời continue; phần câu trả lời đã hoàn tất được giữ lại. Nếu lặp lại, hãy kiểm tra VPN, việc chuyển đổi Wi-Fi và cài đặt chế độ ngủ. |
| Một proxy hoặc gateway ở giữa đã đệm, cắt ngắn hoặc từ chối luồng — chẳng hạn như phần thân yêu cầu vượt quá giới hạn kích thước | Thử một lần khi không có nó. Tăng giới hạn kích thước phần thân và thời gian chờ đọc của proxy, đồng thời tắt bộ đệm phản hồi cho route API. |
| Nó bắt đầu xảy ra ngay sau khi nâng cấp Claude Code | Ghi lại phiên bản trong /status. Một báo cáo tháng 7 năm 2026 đo được thông báo bị dừng ở mức 0% trên 2.1.210 và 3,0–4,4% trên 2.1.217–2.1.218 trên cùng một máy. |
Trước tiên hãy trả lời continue
Claude Code giữ lại văn bản và các lệnh gọi công cụ đã hoàn tất trước khi lỗi xảy ra rồi nối thêm thông báo. Trong một phiên tương tác, hãy đọc phần đã nhận và trả lời continue: lượt đó sẽ tiếp tục từ đó. Trong một lần chạy không tương tác (claude -p), Claude Code in khối văn bản hoàn tất cuối cùng rồi đến thông báo; hãy tiếp tục phiên đó và gửi continue. Nếu chỉ xảy ra một lần thì không cần thay đổi gì khác.
Phân biệt các thông báo
Tài liệu tham chiếu lỗi của Claude Code liệt kê các cách diễn đạt về phản hồi chưa hoàn chỉnh theo nguyên nhân: lỗi máy chủ giữa phản hồi, mất kết nối giữa phản hồi, máy tính chuyển sang chế độ ngủ giữa phản hồi, phản hồi ngừng đến (hiện tượng dừng), một phần phản hồi không bao giờ đến và luồng phản hồi bị sai định dạng. Các báo cáo tháng 7 năm 2026 trích dẫn cách diễn đạt cũ hơn cho hiện tượng dừng là “Response stalled mid-stream”. Thông báo riêng “Streaming response ended before any complete data was received” là trường hợp không có dữ liệu hoàn chỉnh nào đến, nên Claude Code thử lại mà không truyền theo luồng thay vì giữ một câu trả lời từng phần.
Điều chỉnh watchdog, đừng tắt nó
Claude Code sử dụng bốn bộ định thời để hủy luồng khi luồng không còn nhận được dữ liệu, nhờ đó kết nối chết sẽ báo lỗi và thử lại thay vì bị treo: thời hạn nhận byte đầu tiên, bộ giám sát ở cấp sự kiện (300 giây), bộ giám sát ở cấp byte (180 giây khi dùng trực tiếp API của Anthropic, 300 giây ở các trường hợp khác, bao gồm cả khi dùng ANTHROPIC_BASE_URL tùy chỉnh) và, trên một số nhà cung cấp, thời gian chờ khi phần thân phản hồi không nhận được dữ liệu trong năm phút. CLAUDE_STREAM_IDLE_TIMEOUT_MS thiết lập cả hai bộ giám sát; các giá trị dưới năm phút được nâng lên năm phút và bộ giám sát ở cấp byte được giới hạn tối đa ở 30 phút. Hãy đặt biến này trong khối env của settings.json để các tác nhân chạy nền cũng nhận được thiết lập này:
{
"env": {
"CLAUDE_STREAM_IDLE_TIMEOUT_MS": "600000"
}
}Khi đứng sau proxy hoặc gateway, hãy thử khi không có nó
Khi thông báo thử lại mà không truyền theo luồng lặp lại, hãy loại bỏ hop đó một lần: bỏ unset HTTPS_PROXY cho một phiên duy nhất hoặc đặt NO_PROXY="*", rồi chạy cùng tác vụ. Nếu lỗi dừng, hop đó là nguyên nhân. Các thủ phạm thường gặp là giới hạn kích thước phần thân yêu cầu mà các phiên dài vượt qua, bộ đệm phản hồi biến một luồng trực tiếp thành khoảng im lặng dài và thời gian chờ đọc ngắn hơn các khoảng tạm dừng suy nghĩ của model. Lưu ý rằng thời hạn byte đầu tiên không chạy khi ANTHROPIC_BASE_URL trỏ đến gateway, nhưng watchdog cấp byte vẫn chạy.
Nếu bạn gọi qua Kunavo
Kunavo là một trong những gateway mà thông báo đó đề cập, vì vậy đây là cách nó hoạt động trên /v1/messages, endpoint mà Claude Code gọi. Luồng từ upstream được giữ lại cho đến khi tạo ra sự kiện nội dung đầu tiên; lỗi upstream hoặc luồng rỗng trước thời điểm đó sẽ làm lần thử thất bại, sau đó được thử lại trên một kênh khác nếu model có kênh đó, hoặc được trả về dưới dạng lỗi HTTP — không bao giờ là luồng 200 kết thúc mà không có nội dung. Việc dừng sau khi nội dung đã bắt đầu không phải điều gateway có thể thử lại, và watchdog cùng continue của Claude Code là các công cụ phù hợp cho trường hợp đó. Cách các luồng kết thúc ở phía tương thích OpenAI và cách phân biệt toàn bộ câu trả lời với câu trả lời bị cắt được trình bày trong Lỗi streaming API LLM.
Câu hỏi thường gặp
“Phản hồi ở trên có thể chưa đầy đủ” trong Claude Code có nghĩa là gì?
Câu trả lời được truyền theo luồng đã dừng sau khi một phần của nó đến — do bị dừng, mất kết nối, lỗi máy chủ hoặc máy tính chuyển sang chế độ ngủ. Claude Code giữ lại văn bản và các lệnh gọi công cụ đã hoàn tất rồi nối thêm thông báo. Trả lời continue để lượt đó tiếp tục từ phần đã nhận.
“Response stalled mid-stream” có giống “The response stopped arriving” không?
Chúng mô tả cùng một trường hợp: kết nối vẫn mở nhưng ngừng phân phối dữ liệu cho đến khi watchdog truyền theo luồng hủy kết nối. Tài liệu tham chiếu lỗi hiện tại của Claude Code dùng “The response stopped arriving”; các báo cáo được gửi vào tháng 7 năm 2026 trích dẫn “Response stalled mid-stream”.
Tại sao Claude Code báo “Retrying without streaming”?
Vì luồng đã kết thúc trước khi nhận được bất kỳ dữ liệu hoàn chỉnh nào, nên không có gì để giữ lại. Claude Code gửi lại cùng yêu cầu mà không truyền theo luồng. Nếu thông báo tiếp tục xuất hiện, hãy kiểm tra proxy hoặc gateway giữa Claude Code và nhà cung cấp — giới hạn kích thước phần thân, bộ đệm và thời gian chờ đọc là các nguyên nhân thường gặp.
Tôi có nên tắt watchdog truyền theo luồng không?
Không. Các watchdog tồn tại để kết nối chết sẽ thất bại và thử lại thay vì khiến phiên bị treo vô thời hạn. Nếu kết nối của bạn hợp lệ nhưng im lặng trong thời gian dài, hãy tăng CLAUDE_STREAM_IDLE_TIMEOUT_MS (các giá trị dưới năm phút được nâng lên năm phút) thay vì đặt CLAUDE_ENABLE_STREAM_WATCHDOG hoặc CLAUDE_ENABLE_BYTE_WATCHDOG thành 0.
Dùng gateway với ANTHROPIC_BASE_URL có khiến điều này dễ xảy ra hơn không?
Mỗi hop giữa Claude Code và nhà cung cấp là thêm một nơi mà luồng có thể bị đệm, cắt hoặc hết thời gian chờ, vì vậy hãy thử khi không có gateway nếu các thông báo lặp lại. Watchdog cấp byte cũng chạy trên các kết nối gateway; thời hạn byte đầu tiên không chạy khi ANTHROPIC_BASE_URL định tuyến qua gateway.
Hướng dẫn liên quan
- Lỗi streaming LLM — SSE bị ngắt, stream bị treo và thiếu usage
- Claude API 529 overloaded_error — lỗi này là gì và cách vượt qua
- Claude Code “API Error: 401 authentication_error” với base URL tùy chỉnh — mọi nguyên nhân
- Cài đặt Claude Code — lệnh cho mọi hệ điều hành, lần đăng nhập đầu tiên và các lỗi thường gặp
Thông tin chi tiết hơn về ý nghĩa lỗi có trong tài liệu tham chiếu lỗi; bạn chỉ mất một phút để lấy khóa qua đăng ký và hướng dẫn xác thực.