2.1.266: Artifact tool schema uses \p{...} Unicode property escapes in pattern — 400 invalid_request on Anthropic-compatible endpoints (z.ai GLM)
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:
{"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
Artifacttool removed → 200 - Artifact tool with all
patternconstraints 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{...}fromtools[].input_schemapatterns before forwarding