{"record":{"id":"dce3efcd02aa11bc","repo":"alibaba/spring-ai-alibaba","slug":"ignoring-unexpected-tool-feedback-name-id","errorCode":null,"errorMessage":"Ignoring unexpected tool feedback: name={}, id={}","messagePattern":"Ignoring unexpected tool feedback: name=(.+?), id=(.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"spring-ai-alibaba-agent-framework/src/main/java/com/alibaba/cloud/ai/graph/agent/hook/hip/HumanInTheLoopHook.java","lineNumber":258,"sourceCode":"                log.warn(\"Missing feedback for tool {} (id={}); waiting for human input.\",\n                        call.name(), call.id());\n                return false;\n            }\n\n            // Ensure the feedback result is provided\n            if (matchedFeedback.getResult() == null) {\n                log.warn(\"Feedback result for tool {} (id={}) is null; waiting for human input.\",\n                        call.name(), call.id());\n                return false;\n            }\n        }\n\n        // 3. Optional: log unexpected or extra feedback entries that do not match any pending approval tool\n        for (InterruptionMetadata.ToolFeedback tf : toolFeedbacks) {\n            boolean matched = toolCallsNeedingApproval.stream()\n                    .anyMatch(call -> call.name().equals(tf.getName()) && call.id().equals(tf.getId()));\n            if (!matched) {\n                log.warn(\"Ignoring unexpected tool feedback: name={}, id={}\", tf.getName(), tf.getId());\n            }\n        }\n\n\n\n\n\n\n\n        return true;\n    }\n\n\t@Override\n\tpublic String getName() {\n\t\treturn HITL_NODE_NAME;\n\t}\n\n\t@Override","sourceCodeStart":240,"sourceCodeEnd":276,"githubUrl":"https://github.com/alibaba/spring-ai-alibaba/blob/f82da0b50f35744c13968191be2b1cd2452ef550/spring-ai-alibaba-agent-framework/src/main/java/com/alibaba/cloud/ai/graph/agent/hook/hip/HumanInTheLoopHook.java#L240-L276","documentation":"HumanInTheLoopHook.validateFeedback logs a warning for ToolFeedback entries that match no pending approval-required tool call — extra/stale human feedback (for tools whose calls changed) is ignored and does not block validation of the remaining feedback.","triggerScenarios":"Thrown at spring-ai-alibaba-agent-framework/src/main/java/com/alibaba/cloud/ai/graph/agent/hook/hip/HumanInTheLoopHook.java:258 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Clear stale interruption metadata when the agent's tool calls change between runs","Match feedback to current tool calls by id, not only name","Safely ignore — the hook only warns and continues"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f82da0b50f35744c13968191be2b1cd2452ef550","analyzedAt":"2026-09-09T15:32:42.421Z","contentChangedAt":"2026-09-09T15:32:42.421Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}