# Stream JSON parse errors: accumulate, don't parse per delta
## Symptom
JSON parse failures mid-stream, or tool calls with truncated arguments, only when using tool use with streaming.
## Confirm the cause
`input_json_delta` events carry partial JSON strings, not complete objects. Parsing any single delta fails by design. Also check you are not choking on `ping` events or mid-stream `error` events, which the API can send at any time.
## Fix
1. Accumulate `partial_json` strings per content block index; parse the concatenated string once, at `content_block_stop`.
2. Follow the event order: `message_start`, then per block `content_block_start` / deltas / `content_block_stop`, then `message_delta`, then `message_stop`.
3. Ignore `ping` events; handle `error` events as a failed attempt (see the 529 skill).
4. Prefer the SDKs: they accumulate and expose parsed incremental values for you.
## Verify
A tool call with a large input object streams end to end and the parsed input at `content_block_stop` is a complete object matching the tool schema. Re-run with a slow network to confirm ping handling.