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)

Ouverte
#93,029 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
area:providers area:tools bug duplicate platform:macos
Langage dominant
Python
Étoiles
145k
Forks
23.1k
Métriques de merge des PR
Métriques de PR en attente

Description

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

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
json
Domaine
api, cli
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
Active
Clarté
Clairement spécifiée
Accessibilité débutants
68/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.