anthropics / anthropics/claude-code

2.1.266: Artifact tool schema uses \p{...} Unicode property escapes in pattern — 400 invalid_request on Anthropic-compatible endpoints (z.ai GLM)

オープン
#93,029 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る
area:providers area:tools bug duplicate platform:macos
主要言語
Python
スター
145k
フォーク
23.1k
PR マージ指標
PR 指標を取得中

説明

## Version
Claude Code 2.1.266

## Bug
Version 2.1.266 introduced the built-in `Artifact` tool. Its `input_schema` includes a `field` property whose JSON Schema `pattern` contains Unicode property escapes:

```
^(?!__.*__$)[^\p{Cc}\p{Cf}\p{Zl}\p{Zp}"\\./\[\]]{1,200}$
```

The z.ai GLM Anthropic-compatible endpoint (`https://api.z.ai/api/anthropic`, used by GLM Coding Plan subscribers) validates `pattern` regexes with an engine that cannot compile `\p{...}` escapes and rejects the entire request with:

```json
{"type":"error","error":{"type":"invalid_request_error","code":"1210","message":"[1210][Invalid API parameter, please check the documentation.]"}}
```

Result: **every request from Claude Code ≥ 2.1.266 fails with API Error 400 on z.ai's Anthropic-compat endpoint**, since the tool list is sent on every call. This broke previously working setups the moment 2.1.266 auto-updated.

## Isolation (bisected by replaying captured requests)
- Full request with the Artifact tool → 400 code 1210
- Identical request with only the `Artifact` tool removed → 200
- Artifact tool with all `pattern` constraints removed → 200
- Simple pattern (`^[0-9a-f]{32}$`) → 200; regex lookahead `(?!...)` → 200
- **Any pattern containing `\p{Cc}`-style escapes → 400**

## Suggested fix
Avoid Unicode property escapes in tool schema patterns (replace `[^\p{Cc}...]` with an explicit character class or drop the constraint). These escapes are valid JSON Schema 2020-12 but are evidently not universally supported by Anthropic-API-compatible providers, so shipping them in a default-enabled built-in tool breaks third-party endpoints.

## Environment
- macOS 15, arm64
- `ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic`, model glm-5.3
- Local workaround: our proxy (9router) strips `\p{...}`/`\P{...}` from `tools[].input_schema` patterns before forwarding

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Search for the built-in Artifact tool definition and its input_schema field pattern containing \p{Cc}/\p{Cf}/\p{Zl}/\p{Zp}. Reproduce by sending Claude Code 2.1.266 through ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic or by replaying a captured request. Done means the default tool schema no longer sends Unicode property escapes and the z.ai Anthropic-compatible endpoint accepts the request.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
json
領域
api, cli
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
明確に書かれている
初心者へのやさしさ
68/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。