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)

Đang mở
#93,029 0 bình luận 1 reaction 0 người được giao Xem trên GitHub
area:providers area:tools bug duplicate platform:macos
Ngôn ngữ chính
Python
Star
145k
Fork
23.1k
Chỉ số merge pull request
Chỉ số pull request đang chờ

Mô tả

## 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

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
json
Lĩnh vực
api, cli
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
68/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.