דילוג לתוכן הראשי

קלוד קוד שבר כל בקשה מאחורי שער ארגוני, והתיקון הגיע תוך חמש שעות

מאת ירון דויטשר עודכן לאחרונה:

אתמול בלילה, ב-23:20 שעון ישראל, יצאה גרסה 2.1.275 של קלוד קוד. אצל מי שעובד מול ה-API של אנתרופיק ישירות היא עברה בלי שהרגישו בה. אצל מי שעובד דרך שער LLM ארגוני או פרוקסי, כל בקשה התחילה להיכשל בשגיאת 400.

הגרסה שתיקנה את זה, 2.1.276, יצאה ב-04:39 — חמש שעות ו-19 דקות אחר כך. יש בה שורה אחת בלבד ברשימת השינויים, וזו השורה הזאת.

מה בדיוק נשבר

בקשות שקלוד קוד שולח כוללות את רשימת הכלים שהמודל יכול להפעיל. ברשימה הזאת יושב כלי היועץ, זה שמאחורי הפקודה ‎/advisor‎, בגרסה מתוארכת בשם ‎advisor_20260301‎. גרסה 2.1.275 התחילה לשלוח אותו גם בבקשות שיוצאות דרך ‎ANTHROPIC_BASE_URL‎.

שערים ופרוקסי רבים מוודאים את גוף הבקשה מול סכימה משלהם. כלי שהם אינם מכירים אינו עובר את הבדיקה, והבקשה נדחית לפני שהיא מגיעה בכלל למודל. הניסוח משתנה לפי המוצר שחוסם, ושווה להכיר את שתי הצורות הנפוצות:

400 … Input tag 'advisor_20260301'
API Error: 400 Failed to deserialize the JSON body into the target type:
tools[32]: unknown variant `advisor_20260301`, expected `web_search_20250305`
or `web_search_20260209`

זו אינה תקלה נקודתית של מוצר אחד. התיעוד של אנתרופיק למפעילי שערים אומר את זה מראש, ובמילים מפורשות: יש להתייחס לכותרות ולשדות הגוף כאל רשימות פתוחות ולא סגורות, מפני שקלוד קוד צובר יכולות לאורך גרסאות, ושער שננעל על הרשימה שהוא רואה היום שובר את היכולת הבאה ברגע שהיא יוצאת. בדיוק זה מה שקרה כאן.

מי נפגע ומי לא

הקבוצה שנפגעה מוגדרת היטב: מי שיש בסביבה שלו ‎ANTHROPIC_BASE_URL‎ שמצביע על שער ארגוני. ארגונים מקימים שער כזה כדי שמפתח לא יחזיק את מפתח הספק, כדי לייחס שימוש לצוותים, כדי לאכוף תקציבים במקום אחד וכדי לתעד כל בקשה לצורכי ציות.

כפי שנכתב כאן קודם, זו הקבוצה הגדולה בישראל. וזה גם הקהל שפחות מכולם יכול להרשות לעצמו בוקר שבו הכלי לא עובד: ארגון שהקים שער עשה זאת בדיוק כדי שהגישה למודל תעבור במקום אחד מבוקר, וכשהמקום האחד הזה דוחה כל בקשה, הוא דוחה אותה לכולם בבת אחת.

מי שעובד מול ה-API ישירות, או מי שנשאר על גרסה ישנה יותר, לא ראה כלום.

למה רוב האנשים בכלל לא ידעו

קלוד קוד בהתקנה נייטיב מתעדכן ברקע לבד, ולכן היה אפשר לצפות שכל מי שיושב מאחורי שער יתעורר הבוקר לכלי תקוע. חלק ניכר לא. העיתוי עזר, מפני שהגרסה יצאה אחרי חצות שעון ישראל, אבל יש כאן גם סיבה מבנית ששווה להכיר בפני עצמה.

להתקנה הנייטיב יש שני ערוצי עדכון, שנקבעים בהגדרה ‎autoUpdatesChannel‎:

  • ‎latest‎, ברירת המחדל: מקבלים כל גרסה חדשה ברגע שהיא יוצאת
  • ‎stable‎: גרסה מבוגרת בשבוע בערך, שלפי התיעוד מדלגת על שחרורים עם רגרסיות משמעותיות

זה בדיוק מה שקרה הלילה. נכון ל-18 בספטמבר 2026, הערוץ היציב עומד על 2.1.267 בעוד הערוץ העדכני כבר על 2.1.276 — כלומר 2.1.275 מעולם לא הגיעה למי שיושב על היציב. ההבטחה של הערוץ נפרעה במקרה אמיתי, ולא בתיאוריה.

שווה לדייק גם בכיוון השני: זו אינה המלצה גורפת לעבור ליציב. מי שעובד לבד מול ה-API משלם על הערוץ היציב בשבוע של פיגור אחרי תיקוני אבטחה ויכולות חדשות, וזה מחיר אמיתי. ההחלטה תלויה בשאלה אחת — מה עולה יותר אצלכם, בוקר תקוע או שבוע של פיגור. בארגון עם שער, התשובה בדרך כלל ברורה.

הערה למי שלא בהתקנה נייטיב: ב-Homebrew הערוץ נקבע לפי שם ה-cask שהתקנתם ולא לפי ההגדרה, ובהתקנות של WinGet ושל מנהלי חבילות בלינוקס אין עדכון אוטומטי בכלל. שם התקלה הזאת הייתה מגיעה רק כשמריצים עדכון ביד.

הפתרון שמסתובב ברשת, והמחיר שלו

בשעות שבהן לא היה תיקון, הפתרון שעבר בין משתמשים היה כיבוי היכולות שבשלב טרום-שחרור:

export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1

הוא עובד, והוא גם הפתרון שהתיעוד עצמו מפנה אליו כששער דוחה בקשות. אבל יש לו מחיר שלא תמיד מזכירים יחד איתו: הוא מכבה את חיפוש הכלים של MCP, וכל הגדרות הכלים חוזרות להיטען בתחילת הסשן — גם אם הגדרתם ‎ENABLE_TOOL_SEARCH‎ במפורש, כי המשתנה הזה מתעלם מהערך שקבעתם. מי שמחובר להרבה שרתי MCP ישלם על זה בקונטקסט ובעלות, כפי שפורט בטיפ על חיפוש הכלים.

מגרסה 2.1.227 ומעלה אפשר להשאיר את חיפוש הכלים דלוק דרך הגדרות מנוהלות, אבל זו פעולה של מי שמנהל את הארגון ולא של המפתח היחיד.

השורה המעשית: זהו גשר לשעת חירום, לא הגדרה שמשאירים בקובץ ושוכחים ממנה.

מה עושים עכשיו

מי שנתקע אתמול או הבוקר: מעדכנים ובודקים שהגרסה היא 2.1.276 ומעלה. אם הוספתם את משתנה הסביבה כפתרון זמני, הסירו אותו אחרי העדכון.

claude update
claude --version

מי שמנהל שער בארגון: התיקון הזה הגיע מצד אנתרופיק, אבל השער עדיין יידחה מול היכולת הבאה אם הוא ננעל על רשימה סגורה. התיעוד מבקש להעביר שדות גוף וכותרות ‎anthropic-*‎ כפי שהם, בלי allowlist שמתעדכן ידנית.

מי שמחליט על ערוץ העדכון: זו ההחלטה האמיתית שהבוקר הזה מציף. בארגון שבו עשרות מפתחים עוברים דרך שער אחד, שבוע של פיגור זול מבוקר שבו אף אחד לא עובד. ההגדרה יושבת ב-‎/config‎ תחת Auto-update channel, או ישירות בקובץ ההגדרות:

{
  "autoUpdatesChannel": "stable"
}

מעבר ליציב אינו מוריד אתכם לגרסה ישנה יותר אם אתם כבר על חדשה: ההגדרה ‎minimumVersion‎ מציבה רצפה, והמעבר דרך ‎/config‎ שואל אתכם מה לעשות.

שורה תחתונה

הבאג עצמו כבר לא רלוונטי — הוא חי חמש שעות ותוקן. מה שנשאר אחריו הוא שאלה שרוב הצוותים בישראל מעולם לא הכריעו בה במפורש: על איזה ערוץ עדכון הם יושבים, ולמה.

עד אתמול זו הייתה שאלה תיאורטית. הלילה היא קיבלה תשובה מדודה: חמש שעות ו-19 דקות שבהן הערוץ העדכני לא עבד מאחורי שער, והערוץ היציב עבד.

המקור: יומן השינויים הרשמי של קלוד קוד, ומדריך התאימות לשערים.

הניוזלטר: מה חדש בקלוד, בעברית ובחינם

בלי ספאם, אפשר להסיר את ההרשמה בכל רגע. מדיניות פרטיות

מעדיפים ללמוד את זה בקורס או בסדנה?

רוצים שאנחנו נבנה לכם עוזר AI או אוטומציה בקלוד?