# error: read tcp 127.0.0.1:8080->127.0.0.1:34567: i/o timeout (partial read)

- **ID:** `go/io-reader-returns-partial-data-with-error`
- **Domain:** go
- **Category:** io_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

An I/O operation timed out after reading partial data, leaving the application with incomplete data.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 1.20 | active | — | — |
| 1.21 | active | — | — |

## Workarounds

1. **Use io.ReadFull or io.ReadAll to ensure complete read** (90% success)
   ```
   buf := make([]byte, 1024)
n, err := io.ReadFull(reader, buf)
if err != nil { /* handle partial read */ }
   ```

## Dead Ends

- **Ignoring partial read and using data anyway** — May corrupt application state; always check n and error. (90% fail)
