paperclipai/paperclip · error
Invalid tool name "${namespacedName}". Expected format: "<pl
Error message
Invalid tool name "${namespacedName}". Expected format: "<pluginId>${TOOL_NAMESPACE_SEPARATOR}<toolName>" What it means
executeTool failed to split the requested tool name into pluginId and toolName because it does not match the required '<pluginId><separator><toolName>' namespacing format, so the tool cannot be resolved to a plugin.
Source
Thrown at server/src/services/plugin-tool-registry.ts:392
},
parseNamespacedName(namespacedName: string): { pluginId: string; toolName: string } | null {
return parseName(namespacedName);
},
buildNamespacedName(pluginId: string, toolName: string): string {
return buildName(pluginId, toolName);
},
async executeTool(
namespacedName: string,
parameters: unknown,
runContext: ToolRunContext,
): Promise<ToolExecutionResult> {
// 1. Resolve the namespaced name
const parsed = parseName(namespacedName);
if (!parsed) {
throw new Error(
`Invalid tool name "${namespacedName}". Expected format: "<pluginId>${TOOL_NAMESPACE_SEPARATOR}<toolName>"`,
);
}
const { pluginId, toolName } = parsed;
// 2. Verify the tool is registered
const tool = byNamespace.get(namespacedName);
if (!tool) {
throw new Error(
`Tool "${namespacedName}" is not registered. ` +
`The plugin may not be installed or its worker may not be running.`,
);
}
// 3. Verify the worker manager is available
if (!workerManager) {
throw new Error(View on GitHub (pinned to 120ae5428f)
Solutions
- Use the fully namespaced tool name format '<pluginId>:<toolName>' with the correct separator when calling the tool registry.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/plugin-tool-registry.ts:392 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18).
Data as JSON: /api/errors/4d03a5401dd612ca.
Report an issue: GitHub.