Skip to main content

Troubleshooting: Agent Studio graph and custom-tool validation

The Agent Studio canvas (see Build Agents Visually in the Agent Studio Canvas) can reject a publish or a test-run, and the custom-tool registry rejects registration or invocation, each with its own validation code. The runtime-error family (agent runtime errors) covers the codes that fire mid-turn; this page owns the validation family that fires at publish, register, or wiring time. Every failure here arrives as a structured envelope — key on error.code, and for GRAPH_VALIDATION_FAILED read the per-issue list in error.details before you touch the canvas:

Graph publish validation

Custom tool registration

These codes come from POST /agents/custom-tools and the invoke path (see Build custom tools for AI agents). Sample INVALID_EXECUTOR_URL envelope:

Tool wiring errors

These fire when a graph, registry, or agent reference points at a KB, a handoff target, or a runtime handler that cannot resolve.

KB re-chunking

Decision checklist

Run this after any of the codes above:
  1. Read error.code on the envelope.
  2. If it is one of the deterministic 422s (GRAPH_VALIDATION_FAILED, GRAPH_TOOL_NODES_NOT_SUPPORTED_IN_TEST_RUN, RESERVED_TOOL_NAME, INVALID_EXECUTOR_URL-family reject classes, INVALID_HANDOFF_TARGETS, INVALID_KNOWLEDGE_BASE_IDS) — do NOT retry; fix the payload, the graph, or the registry first.
  3. If it is TOOL_NAME_TAKEN or TOOL_DISABLED — clear the collision or re-enable the tool, then retry.
  4. If it is TOOL_IMPL_NOT_REGISTERED — treat as a runtime fault; do not retry and escalate.
  5. For GRAPH_VALIDATION_FAILED, scan error.details for the exact node/edge and fix on the canvas; the console prints the same list inline.

What NOT to do

  • Do not retry GRAPH_VALIDATION_FAILED in a loop. The graph is invalid; a retry re-runs the same gate.
  • Do not rename a custom tool to work around TOOL_NAME_TAKEN. The name is the id the LLM sees and every attached agent trains prompts on it; renaming after the fact breaks trained prompts. Rename the duplicate target instead.
  • Do not point executor_url at an internal host with a public alias. DNS resolution runs at write time and again at dispatch, so a public-looking hostname that resolves internally still fails.
  • Do not escalate on TOOL_NAME_TAKEN / TOOL_DISABLED / INVALID_HANDOFF_TARGETS / INVALID_KNOWLEDGE_BASE_IDS / the 422 validation codes. These are deterministic tenant-owned gates. Escalate only TOOL_IMPL_NOT_REGISTERED (500) with request_id.
  • Do not retry the re-chunk on a legacy document. Re-upload through the canonical KB flow first; the 409 is deterministic.

When to escalate

Escalate to support only for TOOL_IMPL_NOT_REGISTERED (500) — the request_id from meta lets support trace which registry entry the executor resolved. Everything else on this page is a deterministic tenant-side fix.

See also