Claude Code 2.1.239 อุดบั๊กที่เผาเงินเงียบ ๆ — พร็อกซีตัดหัว Content-Type ทำให้ Bedrock ถูกเรียกซ้ำทุกเทิร์น จ่ายค่า API เป็นสองเท่า
21 สิงหาคม 2026 Claude Code ปล่อยเวอร์ชัน 2.1.239 ตามด้วย 2.1.240 และ 2.1.241 ในวันถัดมา (สองตัวหลังเป็น “bug fixes and reliability improvements” ล้วน ๆ) โดย 2.1.239 คือตัวที่มีเนื้อจริง — changelog ยาวเกิน 40 บรรทัด และมีอย่างน้อยหนึ่งบั๊กที่ควรทำให้ทีมที่รัน Claude Code บน Amazon Bedrock ไปเปิดบิลดูย้อนหลัง
บรรทัดนั้นเขียนไว้สั้น ๆ ว่า: “Fixed Bedrock streaming behind proxies that strip the response Content-Type header, which silently doubled billed API calls by re-running every turn non-streaming” — แปลตรงตัวคือ คุณจ่ายเงินเป็นสองเท่ามาตลอดโดยไม่มีอะไรพัง ไม่มี error ไม่มี log เตือน
บั๊กที่ไม่พัง แต่กินเงิน
เคสนี้เป็นตัวอย่างคลาสสิกของบั๊กประเภทที่หา ยาก ที่สุด เพราะระบบยังทำงานถูกต้องทุกอย่าง คำตอบที่ได้ก็ถูก งานก็เสร็จ มีแค่ตัวเลขในบิลที่โตผิดปกติ
กลไกคร่าว ๆ คือ องค์กรจำนวนมากบังคับให้ทราฟฟิกออกอินเทอร์เน็ตผ่าน corporate proxy และพร็อกซีบางตัว (โดยเฉพาะที่ทำ content inspection) จะ ตัดหรือเขียนทับเฮดเดอร์ Content-Type ของ response ทิ้ง เมื่อ Claude Code เรียก Bedrock แบบ streaming แล้วอ่านเฮดเดอร์กลับมาไม่เจอชนิดที่คาดไว้ มันตีความว่า streaming ใช้ไม่ได้ แล้ว fallback ไปรันเทิร์นนั้นใหม่ทั้งเทิร์นแบบ non-streaming
ผลลัพธ์คือทุกเทิร์นถูกส่งไปหาโมเดลสองรอบ — รอบแรกที่ถูก “ทิ้ง” ก็ยังถูกนับ token และเรียกเก็บเงินตามปกติ สำหรับทีมที่รัน agent ยาว ๆ วันละหลายร้อยเทิร์นบน Opus 5 นี่ไม่ใช่ตัวเลขที่มองข้ามได้
เรื่องนี้ยังไปกันกับอีกรายการในเวอร์ชันเดียวกัน ที่แก้อาการ Claude Code ค้างตั้งแต่ตอนสตาร์ต เมื่ออยู่หลัง HTTPS proxy และใช้ Bedrock ผ่าน SSO profile ร่วมกับ awsAuthRefresh — ตอนนี้ขั้นตอน pre-check ของ credential เคารพตัวแปร HTTPS_PROXY แล้ว รวมกันแล้วเวอร์ชันนี้คือ release สำหรับคนที่ใช้ Claude Code ในองค์กรที่มีพร็อกซีคั่นกลาง โดยเฉพาะ
ค่าใช้จ่ายเริ่มบอกความจริงมากขึ้น
อีกรายการที่กระทบกระเป๋าโดยตรง: /cost, status line และแฟล็ก --max-budget-usd เริ่มรวมส่วนเพิ่ม 1.1 เท่าของ US-only inference สำหรับ workspace ที่ตั้งค่า data residency ไว้แล้ว
แปลว่าก่อนหน้านี้ตัวเลขที่ Claude Code โชว์ให้ดูระหว่างทำงาน ต่ำกว่าความจริงประมาณ 10% สำหรับองค์กรที่บังคับให้ประมวลผลอยู่ในสหรัฐฯ เท่านั้น — ไม่ใช่บั๊กที่ทำให้เสียเงินเพิ่ม แต่เป็นบั๊กที่ทำให้ประมาณการงบผิด ซึ่งอันตรายไม่แพ้กันถ้าคุณตั้ง --max-budget-usd ไว้เป็นเพดานของ CI job
ข้อความแจ้ง usage limit ก็ปรับด้วย — ตอนที่ยอดใช้จ่ายรายเดือนเต็มแล้ว ระบบจะบอกเพิ่มว่า session limit และ weekly limit จะรีเซ็ตเมื่อไหร่ แทนที่จะบอกแค่ว่าเต็ม
/claude-api upgrade — ตัวช่วยย้ายจาก anthropic 0.x ไป 1.x
เวอร์ชันนี้เพิ่มคำสั่ง /claude-api upgrade ที่ย้ายโปรเจกต์ Python จากไลบรารี anthropic 0.x ไป 1.x ให้อัตโนมัติ พร้อมอัปเดต reference ของ skill ให้ตรงกับ 1.x — จุดที่ระบุไว้ชัดคือ timeout ต้องใช้ anthropic.Timeout ไม่ใช่ httpx.Timeout อีกต่อไป
รายการนี้ต่อยอดโดยตรงจาก Python SDK 1.0 ที่ออกเมื่อ 20 ส.ค. ซึ่งย้ายชั้น HTTP จาก httpx ไป httpx2 — การที่ Anthropic ใส่ตัว migrate มาให้ใน Claude Code ภายในสัปดาห์เดียวกัน ถือเป็นการปิดช่องว่างที่เร็วกว่าที่คาด และเป็นสัญญาณว่าเขามอง Claude Code เป็นเครื่องมือ migration ไม่ใช่แค่ agent เขียนโค้ด
รายการอื่นที่นักพัฒนาน่าจะเจอบ่อย
- ปลั๊กอินจาก cloud sessions ที่ซิงก์มาจาก claude.ai จะขึ้นชื่อเป็น
name@syncedใช้claude plugin enable/disable <name>@syncedได้ และ จะไม่ทับปลั๊กอินชื่อเดียวกันที่คุณติดตั้งเองในเครื่อง — เดิมทีชนกันแล้วของ cloud ชนะ - Alpine/musl — ส่วนเสริม native (วางรูป, clipboard, จับเสียง) โหลดได้แล้ว จากเดิมที่ไบนารีถูกบิลด์ด้วย glibc แล้ว runtime ปฏิเสธ ใครรัน Claude Code ในคอนเทนเนอร์ Alpine น่าจะรู้สึกทันที
- MCP — ฟอร์ม elicitation ที่สูงเกินหน้าจอไม่โดนตัดหัวตัดท้ายใน fullscreen แล้ว, และ remote MCP server ที่เจอ 5xx ชั่วคราวตอน reconnect กลางเซสชันจะไม่ค้างสถานะ failed ถาวรอีก
- OpenTelemetry — แก้ trace แตกเป็นเสี่ยง: tool execution ที่ถูก
PreToolUsehook หน่วงไว้ จะกลับไปต่อใน trace ของเทิร์นเดิม แทนที่จะเปิด trace ใหม่ - Linux sandbox — แก้เคสที่
.git/config.worktreeซึ่งไม่มีอยู่จริงถูกทำให้อ่านไม่ได้ ทำให้ คำสั่ง git ทุกคำสั่งใน sandbox พังหมด ในรีโปที่ตั้งextensions.worktreeConfig - ไฟล์ที่ขึ้นต้นด้วย UTF-8 BOM — agent, skill และ command ที่ไฟล์
.mdมี BOM นำหน้าเคยถูกข้ามไปเงียบ ๆ ตอนนี้อ่านได้แล้ว (จุดนี้เจ็บเป็นพิเศษกับคนที่แก้ไฟล์บน Windows) - JetBrains — Edit และ Write ไม่หยุดค้างราว 5 วินาทีในเทอร์มินัลของ JetBrains IDE เมื่อเสียบปลั๊กอิน Claude Code แล้ว
/goal— การเช็กอินซ้ำ ๆ ของงาน background ยาว ๆ เปลี่ยนเป็น backoff (30 นาที → 1 ชม. → ทุก 2 ชม.) แทนที่จะทวงทุก 30 นาทีตลอดกาล- WebFetch — เดิมเก็บเนื้อหาหน้าเว็บที่หมดอายุไว้ในหน่วยความจำทั้งเซสชัน ทั้งที่ตั้งใจให้อยู่แค่ 15 นาที
มุมมอง AI Curator
รายการเดียวที่ควรทำให้ทีมไทยลุกไปเช็กบิลจริง ๆ คือบั๊ก Bedrock — และเหตุผลไม่ใช่แค่เรื่องเงิน แต่เป็นเรื่อง ประเภทของความล้มเหลว
บั๊กนี้เข้าข่ายที่เรียกว่า silent failure ในโหมดที่แย่ที่สุด: fallback ทำงาน “ถูกต้อง” ตามที่ออกแบบไว้ ผู้ใช้ได้คำตอบครบ ไม่มี exception ไม่มี warning ระบบ observability ก็ไม่มีอะไรให้ alert เพราะจากมุมของ Claude Code มันแค่ retry สำเร็จ สิ่งเดียวที่บอกว่ามีปัญหาคือตัวเลขใน AWS Cost Explorer ที่โตขึ้นเป็นเท่าตัว — และในองค์กรไทยส่วนใหญ่ คนที่ดูบิล AWS กับคนที่ใช้ Claude Code ไม่ใช่คนเดียวกัน และมักไม่ได้คุยกันทุกเดือน
จุดที่น่าสนใจกว่าคือรากของปัญหาไม่ได้อยู่ที่ Anthropic หรือ AWS แต่อยู่ที่ corporate proxy ซึ่งเป็นของที่แทบทุกองค์กรใหญ่ในไทย — ธนาคาร โทรคมนาคม โรงพยาบาล หน่วยงานรัฐ — บังคับใช้ทั้งนั้น พร็อกซีที่ทำ TLS inspection แล้วเขียนเฮดเดอร์ใหม่คือพฤติกรรมปกติของ security appliance ไม่ใช่ misconfiguration แปลว่าองค์กรที่ เข้มงวดเรื่อง security ที่สุด กลับเป็นกลุ่มที่โดนบั๊กนี้หนักที่สุด นี่คือรูปแบบที่จะเจอซ้ำอีกแน่ ๆ เมื่อ AI agent ถูกลากเข้าไปอยู่หลัง network stack ขององค์กร: สมมติฐานเรื่อง HTTP ที่เครื่องมือ dev tool ตั้งไว้ มักไม่รอดจากชั้น middlebox ขององค์กร
ข้อเสนอปฏิบัติสำหรับทีมที่รัน Claude Code บน Bedrock ในไทย: อัปเป็น 2.1.239 ขึ้นไปทันที แล้วเทียบยอด token ต่อวันของสัปดาห์นี้กับสัปดาห์ก่อน ถ้าลดลงราวครึ่งหนึ่งโดยที่ปริมาณงานเท่าเดิม คุณเพิ่งพบว่าจ่ายเกินมานานแค่ไหน และควรใช้ตัวเลขนั้นไปคุยกับทีม network ว่าพร็อกซีตัวไหนเป็นคนตัดเฮดเดอร์ เพราะปัญหาเดียวกันจะกลับมาอีกกับเครื่องมือ AI ตัวถัดไปที่คุณเสียบเข้าไป
ส่วนรายการ 1.1× US-only inference สะท้อนอีกเทรนด์ที่ไทยกำลังจะเจอเต็ม ๆ — data residency มีราคา และตอนนี้ราคานั้นถูกทำให้มองเห็นได้ในเครื่องมือแล้ว เมื่อ PDPA และข้อกำหนดของ ธปท. ผลักให้องค์กรไทยต้องเลือก region ที่จำกัด ตัวเลขส่วนเพิ่มแบบนี้จะกลายเป็นบรรทัดหนึ่งในการคำนวณ TCO ของทุกโปรเจกต์ AI ไม่ใช่เชิงอรรถอีกต่อไป
แหล่งข่าว
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog