---
outline: deep
---

# DF0029: Stream Buffer Overflow

## Message

> Stream "`{channel}#{id}`" dropped `{dropped}` chunk(s) after exceeding the client high-water mark.

## Cause

A streaming subscriber's queue grew past its `highWaterMark` because the consumer is slower than the producer. The oldest chunks were dropped to keep memory bounded.

This is a soft warning — the stream keeps running and remaining chunks still flow.

## Fix

- Raise `highWaterMark` on `rpc.streaming.subscribe(channel, id, { highWaterMark })` if the consumer can occasionally catch up.
- Slow the producer so it doesn't outpace the wire (e.g. throttle, debounce, or batch chunks server-side).
- Switch to `sharedState` if you only need the latest value rather than every intermediate chunk.

## Source

- [`packages/devframe/src/client/rpc-streaming.ts`](https://github.com/devframes/devframe/blob/main/packages/devframe/src/client/rpc-streaming.ts) — the client subscription queue logs `DF0029` (with the dropped chunk count) when buffered chunks exceed `highWaterMark`.
