## The problem
Issue langchain-ai/langchain#16798 (closed, 43 comments): ### Checked other resources

- [X] I added a very descriptive title to this issue.
- [X] I searched the LangChain documentation with the integrated search.
- [X] I used the GitHub search to find a similar question and didn't find it.
- [X] I am sure that this is a bug in LangChain rather than my code.

### Example Code

```python
class MyCustomAsyncHandler(AsyncCallbackHandler):
    async def on_llm_end(self, response: LLMResult, **kwargs: Any) -> None:
        """Run when chain ends running."""
        print("RESPONSE: ", response)
        print("Hi! I just woke up. Your llm is...

## What to do
Token usage callbacks were silently dropped because `AgentExecutor` forced streaming on the runnable. The confirmed workaround is to disable streaming on the executor:

agent = AgentExecutor(..., stream_runnable=False)

or on an existing executor:

agent_executor.agent.stream_runnable = False

Users verified token counts came back after this. On newer setups where you want streaming, pass `stream_options={"include_usage": True}` to the model instead.