{"record":{"id":"3716a24fa559ed69","repo":"paperclipai/paperclip","slug":"elicitation-required","errorCode":"elicitation_required","errorMessage":"MCP tool requested additional input","messagePattern":"MCP tool requested additional input","errorType":"http","errorClass":"ToolGatewayHttpError","httpStatus":409,"severity":"error","filePath":"server/src/services/tool-gateway.ts","lineNumber":3146,"sourceCode":"        versionSelector: grantRef.versionSelector,\n        configPath,\n        refHash: credentialVersionRefHash({\n          kind: typedRef.placement === \"url\" ? \"url\" : \"header\",\n          name: typedRef.name,\n          secretId: grantRef.secretId,\n          placement: typedRef.placement,\n          key: typedRef.key,\n          prefix: typedRef.prefix ?? null,\n          configPath,\n        }),\n        requireResolved: options.requireResolved,\n      }));\n    }\n\n    for (const ref of grant.credentialSecretRefs ?? []) {\n      const typedRef = ref as ToolCredentialSecretRef;\n      credentialSecretVersions.push(await resolveConnectedCredentialVersion(connection, {\n        secretId: typedRef.secretId,\n        versionSelector: typedRef.versionSelector,\n        configPath: typedRef.configPath,\n        refHash: credentialVersionRefHash({\n          kind: \"secret_ref\",\n          secretId: typedRef.secretId,\n          configPath: typedRef.configPath,\n          required: typedRef.required ?? true,\n          label: typedRef.label ?? null,\n        }),\n        requireResolved: options.requireResolved,\n      }));\n    }\n\n    return { headerCredentialVersions, credentialSecretVersions };\n  }\n\n  async function createUserAuthorizationInteraction(\n    session: ToolGatewaySession,","sourceCodeStart":3128,"sourceCodeEnd":3164,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/services/tool-gateway.ts#L3128-L3164","documentation":"Elicitation path: the gateway converted an upstream MCP elicitation request into a human interaction card and recorded an elicitation_requested audit event (decision defer_runtime). The 409 tells the agent the tool needs more input; the run should wrap up and wait for the interaction decision rather than retry the call.","triggerScenarios":"Thrown at server/src/services/tool-gateway.ts:3003 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["The MCP tool needs more input (elicitation). Provide the requested fields and retry the call."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}