Skip to content

After SummarizationMiddleware is triggered, agent can randomly triggers 400 - No tool call found #34282

@tetv

Description

@tetv

Checked other resources

  • This is a bug, not a usage question.
  • I added a clear and descriptive title that summarizes this issue.
  • I used the GitHub search to find a similar question and didn't find it.
  • I am sure that this is a bug in LangChain rather than my code.
  • The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).
  • This is not related to the langchain-community package.
  • I posted a self-contained, minimal, reproducible example. A maintainer can copy it and run it AS IS.

Package (Required)

  • langchain
  • langchain-openai
  • langchain-anthropic
  • langchain-classic
  • langchain-core
  • langchain-cli
  • langchain-model-profiles
  • langchain-tests
  • langchain-text-splitters
  • langchain-chroma
  • langchain-deepseek
  • langchain-exa
  • langchain-fireworks
  • langchain-groq
  • langchain-huggingface
  • langchain-mistralai
  • langchain-nomic
  • langchain-ollama
  • langchain-perplexity
  • langchain-prompty
  • langchain-qdrant
  • langchain-xai
  • Other / not sure / general

Example Code (Python)

-

Error Message and Stack Trace (if applicable)

BadRequestError("Error code: 400 - {'error': {'message': 'No tool call found for function call output with call_id call_isCU6SdR5T4GBrTwrixhapmP.', 'type': 'invalid_request_error', 'param': 'input', 'code': None}}")Traceback (most recent call last): File "/my-proj/.venv/lib/python3.14/site-packages/langgraph/pregel/main.py", line 2643, in stream for _ in runner.tick( ~~~~~~~~~~~^ [t for t in loop.tasks.values() if not t.writes], ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<2 lines>... schedule_task=loop.accept_push, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ): ^ File "/my-proj/.venv/lib/python3.14/site-packages/langgraph/pregel/_runner.py", line 167, in tick run_with_retry( ~~~~~~~~~~~~~~^ t, ^^ ...<10 lines>... }, ^^ ) ^ File "/my-proj/.venv/lib/python3.14/site-packages/langgraph/pregel/_retry.py", line 42, in run_with_retry return task.proc.invoke(task.input, config) ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ File "/my-proj/.venv/lib/python3.14/site-packages/langgraph/_internal/_runnable.py", line 656, in invoke input = context.run(step.invoke, input, config, **kwargs) File "/my-proj/.venv/lib/python3.14/site-packages/langgraph/_internal/_runnable.py", line 400, in invoke ret = self.func(*args, **kwargs) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 1132, in model_node response = wrap_model_call_handler(request, _execute_model_sync) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 192, in final_normalized final_result = result(request, handler) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 176, in composed outer_result = outer(request, inner_handler) File "/my-proj/common/utils.py", line 149, in wrap_model_call return handler(request) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 172, in inner_handler inner_result = inner(req, handler) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 176, in composed outer_result = outer(request, inner_handler) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/middleware/todo.py", line 207, in wrap_model_call return handler(request.override(system_message=new_system_message)) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 172, in inner_handler inner_result = inner(req, handler) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 176, in composed outer_result = outer(request, inner_handler) File "/my-proj/common/utils.py", line 149, in wrap_model_call return handler(request) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 172, in inner_handler inner_result = inner(req, handler) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 176, in composed outer_result = outer(request, inner_handler) File "/my-proj/.venv/lib/python3.14/site-packages/deepagents/middleware/filesystem.py", line 763, in wrap_model_call return handler(request) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 172, in inner_handler inner_result = inner(req, handler) File "/my-proj/.venv/lib/python3.14/site-packages/langchain_anthropic/middleware/prompt_caching.py", line 112, in wrap_model_call return handler(request) File "/my-proj/.venv/lib/python3.14/site-packages/langchain/agents/factory.py", line 1102, in _execute_model_sync output = model_.invoke(messages) File "/my-proj/.venv/lib/python3.14/site-packages/langchain_core/runnables/base.py", line 5534, in invoke return self.bound.invoke( ~~~~~~~~~~~~~~~~~^ input, ^^^^^^ self._merge_configs(config), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **{**self.kwargs, **kwargs}, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/my-proj/.venv/lib/python3.14/site-packages/langchain_core/language_models/chat_models.py", line 398, in invoke self.generate_prompt( ~~~~~~~~~~~~~~~~~~~~^ [self._convert_input(input)], ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<6 lines>... **kwargs, ^^^^^^^^^ ).generations[0][0], ^ File "/my-proj/.venv/lib/python3.14/site-packages/langchain_core/language_models/chat_models.py", line 1117, in generate_prompt return self.generate(prompt_messages, stop=stop, callbacks=callbacks, **kwargs) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/my-proj/.venv/lib/python3.14/site-packages/langchain_core/language_models/chat_models.py", line 927, in generate self._generate_with_cache( ~~~~~~~~~~~~~~~~~~~~~~~~~^ m, ^^ ...<2 lines>... **kwargs, ^^^^^^^^^ ) ^ File "/my-proj/.venv/lib/python3.14/site-packages/langchain_core/language_models/chat_models.py", line 1221, in _generate_with_cache result = self._generate( messages, stop=stop, run_manager=run_manager, **kwargs ) File "/my-proj/.venv/lib/python3.14/site-packages/langchain_openai/chat_models/base.py", line 1356, in _generate raise e File "/my-proj/.venv/lib/python3.14/site-packages/langchain_openai/chat_models/base.py", line 1338, in _generate raw_response = self.root_client.responses.with_raw_response.create( **payload ) File "/my-proj/.venv/lib/python3.14/site-packages/openai/_legacy_response.py", line 364, in wrapped return cast(LegacyAPIResponse[R], func(*args, **kwargs)) ~~~~^^^^^^^^^^^^^^^^^ File "/my-proj/.venv/lib/python3.14/site-packages/openai/resources/responses/responses.py", line 859, in create return self._post( ~~~~~~~~~~^ "/responses", ^^^^^^^^^^^^^ ...<40 lines>... stream_cls=Stream[ResponseStreamEvent], ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/my-proj/.venv/lib/python3.14/site-packages/openai/_base_client.py", line 1259, in post return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/my-proj/.venv/lib/python3.14/site-packages/openai/_base_client.py", line 1047, in request raise self._make_status_error_from_response(err.response) from None openai.BadRequestError: Error code: 400 - {'error': {'message': 'No tool call found for function call output with call_id call_isCU6SdR5T4GBrTwrixhapmP.', 'type': 'invalid_request_error', 'param': 'input', 'code': None}} During task with name 'model' and id '3ba2f8f3-73ca-fb2f-e380-e8b6a9f289a9'

Description

Using latest version of langchain.

using vanilla create_deep_agent() call, which contain the SummarisationMiddleware to keep 6 messages and requires 170k tokens to summarize.

Basically, summarisation should:

  • Not summarise tools_call requests, in which the correspondent tool_call response wasn't yet received.
  • If one of last messages to keep is a tool_call response, be sure that the correspondent tool_call request is also present in the messages (even if it's in the windows to summarise).

System Info

Metadata

Metadata

Assignees

Labels

bugRelated to a bug, vulnerability, unexpected error with an existing featurelangchain`langchain` package issues & PRswaiting-on-authorIssue or PR is paused, waiting to hear from author in order to proceed

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions