n8n - 💡(How to fix) Fix Anthropic tool calls fail with "tools.0.custom.input_schema.properties: Property keys should match pattern" — toolHttpRequest + lmChatAnthropic on 2.13.4

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

400 {"type":"error","error":{"type":"invalid_request_error","message":"tools.0.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'"}} 400 {"type":"error","error":{"type":"invalid_request_error","message":"tools.0.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'"},"request_id":"req_011Cb8hu3mKGa5TyqJV5hff6"} All tool names and all placeholder/parameter names in the workflow are pure ASCII identifiers matching the required pattern (RMS_Properties, RMS_Categories, propertyId, dateFrom, etc.). The error reproduces regardless of which specific tool is registered first, and reproduces with tools that have zero parameters as well as tools with explicit placeholderDefinitions.

  • error: all
RAW_BUFFERClick to expand / collapse

Bug Description

Using @n8n/n8n-nodes-langchain.toolHttpRequest (typeVersion 1.1) with descriptionType: 'manual' + explicit placeholderDefinitions, connected to @n8n/n8n-nodes-langchain.lmChatAnthropic (1.3) via an AI Agent (1.8). Every request to Anthropic fails with: 400 {"type":"error","error":{"type":"invalid_request_error","message":"tools.0.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'"}} All my tool names, placeholder names, and descriptions are pure ASCII identifiers matching the required pattern. Behaviour reproduces across:

descriptionType: 'auto' with $fromAI() calls descriptionType: 'manual' with placeholderDefinitions Tools with and without parameters Tools with and without bodies/query/headers

n8n version 2.13.4 (self-hosted), @langchain/[email protected].

To Reproduce

  1. Create a new workflow in n8n 2.13.4 (self-hosted).
  2. Add an AI Agent node (@n8n/n8n-nodes-langchain.agent, typeVersion 1.8).
  3. Connect an Anthropic Chat Model node (@n8n/n8n-nodes-langchain.lmChatAnthropic, typeVersion 1.3) using model claude-sonnet-4-6.
  4. Connect any HTTP Request Tool node (@n8n/n8n-nodes-langchain.toolHttpRequest, typeVersion 1.1) to the agent. Tested with both: a) descriptionType: "auto" with $fromAI() expressions in URL/body, and b) descriptionType: "manual" with explicit placeholderDefinitions.
  5. Connect a Chat Trigger node and send any test message.

Result: every request to Anthropic fails with HTTP 400:

400 {"type":"error","error":{"type":"invalid_request_error","message":"tools.0.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'"},"request_id":"req_011Cb8hu3mKGa5TyqJV5hff6"}

All tool names and all placeholder/parameter names in the workflow are pure ASCII identifiers matching the required pattern (RMS_Properties, RMS_Categories, propertyId, dateFrom, etc.). The error reproduces regardless of which specific tool is registered first, and reproduces with tools that have zero parameters as well as tools with explicit placeholderDefinitions.

LangChain core: 1.1.31 n8n: 2.13.4 self-hosted

Expected behavior

The AI Agent should successfully send the tool definitions to Anthropic's API. n8n should generate input_schema.properties objects whose keys consist only of characters matching Anthropic's required pattern ^[a-zA-Z0-9_.-]{1,64}$.

With descriptionType: "manual" and explicit placeholderDefinitions containing only valid identifiers (propertyId, propertyIds, dateFrom, dateTo, statusKind, etc.), the resulting input_schema.properties should contain exactly those names — nothing else. Currently n8n appears to be injecting additional property keys during the tool-to-Anthropic serialization that violate the required pattern, which is why every tool-enabled Anthropic workflow fails identically.

Debug Info

Debug info

core

  • n8nVersion: 2.13.4
  • platform: docker (self-hosted)
  • nodeJsVersion: 24.13.1
  • nodeEnv: production
  • database: postgres
  • executionMode: regular
  • concurrency: -1
  • license: enterprise (production)
  • consumerId: 4ea1638d-c3ef-4a41-8d09-0069d45a00a8

storage

  • success: all
  • error: all
  • progress: false
  • manual: true
  • binaryMode: filesystem

pruning

  • enabled: true
  • maxAge: 336 hours
  • maxCount: 10000 executions

client

  • userAgent: mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/148.0.0.0 safari/537.36 edg/148.0.0.0
  • isTouchDevice: false

Generated at: 2026-05-17T19:51:38.359Z

Operating System

Linux 22.04

n8n Version

2.13.4

Node.js Version

v22.22.2

Database

PostgreSQL

Execution mode

main (default)

Hosting

self hosted

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The AI Agent should successfully send the tool definitions to Anthropic's API. n8n should generate input_schema.properties objects whose keys consist only of characters matching Anthropic's required pattern ^[a-zA-Z0-9_.-]{1,64}$.

With descriptionType: "manual" and explicit placeholderDefinitions containing only valid identifiers (propertyId, propertyIds, dateFrom, dateTo, statusKind, etc.), the resulting input_schema.properties should contain exactly those names — nothing else. Currently n8n appears to be injecting additional property keys during the tool-to-Anthropic serialization that violate the required pattern, which is why every tool-enabled Anthropic workflow fails identically.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

n8n - 💡(How to fix) Fix Anthropic tool calls fail with "tools.0.custom.input_schema.properties: Property keys should match pattern" — toolHttpRequest + lmChatAnthropic on 2.13.4