chenhg5/cc-connect · error
read stdout: %w
Error message
read stdout: %w
What it means
Wraps a scanner/stdout read failure in the qoder readLoop: the JSON event stream from the qoder CLI could not be read (broken pipe, early process exit with no usable output). Emitted as an EventError for the in-flight turn.
Source
Thrown at agent/qoder/session.go:213
select {
case qs.events <- evt:
case <-qs.ctx.Done():
}
} else if exitErr != nil {
// Process failed with no usable output.
stderrMsg := strings.TrimSpace(stderrBuf.String())
if stderrMsg == "" {
stderrMsg = exitErr.Error()
}
slog.Error("qoderSession: process failed with no result", "error", exitErr, "stderr", truncStr(stderrMsg, 200))
evt := core.Event{Type: core.EventError, Error: fmt.Errorf("%s", stderrMsg)}
select {
case qs.events <- evt:
case <-qs.ctx.Done():
}
} else if scanErr != nil {
// Scanner error with no output.
evt := core.Event{Type: core.EventError, Error: fmt.Errorf("read stdout: %w", scanErr)}
select {
case qs.events <- evt:
case <-qs.ctx.Done():
}
} else {
// Process exited cleanly but produced nothing at all.
slog.Warn("qoderSession: process exited with no output and no result event")
evt := core.Event{Type: core.EventResult, Content: "", SessionID: qs.CurrentSessionID(), Done: true}
select {
case qs.events <- evt:
case <-qs.ctx.Done():
}
}
}
// ── stream-json event structures ─────────────────────────────
type streamEvent struct {View on GitHub (pinned to 4000b2338a)
Solutions
- Check whether the qoder process crashed (see adjacent stderr events)
- Retry the message after confirming the CLI works manually
- Report persistent stream failures upstream
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at agent/qoder/session.go:213 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of chenhg5/cc-connect@4000b2338a (2026-09-06).
Data as JSON: /api/errors/aee1153e98c3a607.
Report an issue: GitHub.