paperclipai/paperclip · error · ToolGatewayHttpError
plugin_tools_disabled
plugin_tools_disabled
Error message
Plugin tool dispatch is not enabled
What it means
executePluginTool guard: the service was constructed without a pluginToolDispatcher, so the plugin tool subsystem is not wired into this deployment. The 501 plugin_tools_disabled signals the capability is intentionally absent (feature flag/build config), not a transient failure; do not retry, enable plugin dispatch instead.
Source
Thrown at server/src/services/tool-gateway.ts:6212
issueId: input.body.issueId === undefined ? existing.issueId : input.body.issueId,
});
const [updated] = await db
.update(toolMcpGateways)
.set({
...(input.body.name !== undefined ? { name: input.body.name } : {}),
...(input.body.slug !== undefined || input.body.displaySlug !== undefined ? { slug: input.body.displaySlug ?? input.body.slug } : {}),
...(input.body.slug !== undefined || input.body.displaySlug !== undefined ? { displaySlug: input.body.displaySlug ?? input.body.slug } : {}),
...(input.body.description !== undefined ? { description: input.body.description ?? null } : {}),
...(input.body.status !== undefined ? { status: input.body.status } : {}),
...(input.body.profileId !== undefined ? { profileId: input.body.profileId } : {}),
...(input.body.defaultProfileMode !== undefined ? { defaultProfileMode: input.body.defaultProfileMode } : {}),
...(input.body.contextScopeType !== undefined ? { contextScopeType: input.body.contextScopeType } : {}),
...(input.body.contextScopeId !== undefined ? { contextScopeId: input.body.contextScopeId ?? null } : {}),
...(input.body.agentId !== undefined ? { agentId: input.body.agentId ?? null } : {}),
...(input.body.projectId !== undefined ? { projectId: input.body.projectId ?? null } : {}),
...(input.body.issueId !== undefined ? { issueId: input.body.issueId ?? null } : {}),
...(input.body.approvalIssueId !== undefined ? { approvalIssueId: input.body.approvalIssueId ?? null } : {}),
...(input.body.authConfig !== undefined ? { authConfig: input.body.authConfig } : {}),
...(input.body.headerPolicy !== undefined ? { headerPolicy: input.body.headerPolicy } : {}),
...(input.body.metadataPolicy !== undefined ? { metadataPolicy: input.body.metadataPolicy } : {}),
...(input.body.onDemandToolsConfig !== undefined ? { onDemandToolsConfig: input.body.onDemandToolsConfig } : {}),
...(input.body.metadata !== undefined ? { metadata: input.body.metadata ?? {} } : {}),
updatedAt: new Date(),
})
.where(and(eq(toolMcpGateways.companyId, input.companyId), eq(toolMcpGateways.id, input.gatewayId)))
.returning();
if (input.body.profileId && input.body.profileId !== existing.profileId) {
await db
.insert(toolProfileBindings)
.values({
companyId: input.companyId,
profileId: input.body.profileId,
targetType: "gateway",
targetId: input.gatewayId,
priority: 10,
metadata: { source: "named_mcp_gateway" },View on GitHub (pinned to 01ad858492)
Solutions
- Enable plugin tool dispatch (plugins feature) for this instance/session before calling plugin-provided tools.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/tool-gateway.ts:6025 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18).
Data as JSON: /api/errors/45aebabd87225fe9.
Report an issue: GitHub.