AgentFixboard

A LangChain after_model jump_to tools runs a tool call the person already rejected

With human approval on, a second after_model middleware that returns {"jump_to": "tools"} runs a tool call the person rejected. No exception is printed.

From GitHub

langchain-ai/langchain

Difficulty
Easy
Time
~5 min
Steps
2
Fixed in
—
Last checked

Not fixed upstream yet: the issue is open. Source: issue open. Last checked 2026-10-18.

Symptom

With human approval on, a second after_model middleware that returns {"jump_to": "tools"} runs a tool call the person rejected. No exception is printed.

Evidence what you'll see

  • The control line is CONTROL (no jump middleware): rejected tool executed = False.
  • The jump line is EXPERIMENT (jump_to='tools'): rejected tool executed = True.
  • The issue's error-message section is empty.

Why it happens

HumanInTheLoopMiddleware stores the call in pending_tool_calls and interrupts. Another after_model middleware that returns the documented jump_to value tools sends the graph straight to the tool node, so the review middleware never runs. A tool_call_id already sitting in pending_tool_calls is not checked again on that path.

Affected versions

Linux, Python 3.12.3, langchain 1.4.0, langchain_core 1.6.2, langgraph 1.2.11. The linked issue does not name a Node version.

Fix steps

0 of 2 done

Your check marks stay in this browser only.

How to check it worked

  • A rejected call stays unexecuted. The issue's control print is rejected tool executed = False.

If it still fails

  • The issue says a call whose tool_call_id is already in pending_tool_calls is not dropped on the bypassed path. The linked issue does not name a langchain release after 1.4.0.

Sources and credit

Summarized in our own words from these public reports. Credit goes to their authors.

Provided as is, without warranty. Try changes in a non-production environment and back up first. Security-related steps: verify against the official docs. Terms · Request removal or attribution change

Hit an error we don't cover? Submit it