# Symptom
You stream a chat model and the usage metadata (input/output tokens) is missing or zero, while non-streamed invokes report it fine.
## Confirm
Check the provider. OpenAI and Azure OpenAI chat completions require you to opt in to receiving token usage in streaming contexts; it is not returned by default. Other providers vary.
## Cause
Streaming usage is a provider-side option, not a LangChain default. The chunks simply do not carry usage unless the integration asks for it.
## Fix
1. Enable the streaming usage option on the integration (see the provider's integration page, e.g. the OpenAI chat integration's streaming usage metadata section).
2. Aggregate across calls with the callback instead of reading chunks by hand:
```python
from langchain_core.callbacks import UsageMetadataCallbackHandler
callback = UsageMetadataCallbackHandler()
result = model.invoke("Hello", config={"callbacks": [callback]})
print(callback.usage_metadata)
```
or the context manager `get_usage_metadata_callback`.
## Verify
Re-run the stream and confirm usage_metadata populates. If it is still empty, the provider does not return usage for that model or endpoint; check the provider docs.