Summary
When using a Claude Code hybrid proxy (port 8086) as an OpenAI-compatible provider, a model response was generated, streamed to completion via SSE (stop_reason=end_turn), and received by the OpenClaw gateway — but never delivered to Slack. No error was logged. The user only received the tool progress markers (🔧 / ✅) but not the actual text response (~4,300 chars).
Evidence
- Claude Code session transcript (
3b9e60f0) confirms the model generated a full response and completed normally
- Proxy logs: No BrokenPipeError, no orphaned result saved (client connection was intact)
- OC gateway logs: No error entries between response completion (22:42:19 MDT) and next message arrival (22:43:50 MDT)
- Next message worked fine: A new session bootstrapped at 22:43:51 and delivered its response to Slack successfully
Timeline (2026-04-17, MDT)
| Time |
Event |
| 22:41:37 |
OC bootstraps session, sends message to hybrid proxy |
| 22:41:40 |
Model emits text: "I'll pull up that SVG..." (57 chars) |
| 22:41:41 |
Model calls Read tool → tool progress SSE chunks sent |
| 22:42:00 |
Model emits response part 1 (1,958 chars) |
| 22:42:19 |
Model emits response part 2 (2,340 chars), stop_reason=end_turn |
| 22:42:19 |
Proxy sends final SSE chunk + [DONE] |
| 22:43:50 |
User sends next message → new session bootstrapped |
| 22:43:51 |
New session responds normally ✅ |
Suspected Root Causes (unconfirmed)
- Slack draft update failure: Tool progress markers were delivered as draft updates; the subsequent large text body may have failed a Slack API update (rate limit, size) — silently swallowed
- SSE accumulation error: Gateway's SSE consumer accumulated text but failed to finalize the draft into a permanent Slack message
- Race with next message: User's next message at 22:43:50 may have caused the session manager to abort/reset the streaming consumer before delivery, even though the proxy had already completed
Environment
- OpenClaw 2026.4.2
- Hybrid proxy v1.3.2 on port 8086
- Provider config:
claudecode-hybrid with baseUrl: http://localhost:8086/v1
- Channel: Slack (
slack_mrkdwn)
Impact
Intermittent — first observed occurrence. User saw tool progress indicators but no response text, and had to send another message to get a reply. The "lost" response was a detailed analysis that took ~40 seconds of model compute.
Notes
- Proxy-side logging has been improved (tee writer to dedicated request log file) to capture future occurrences
- No proxy-side bug identified — the SSE stream completed normally with all text chunks delivered and connection intact
Summary
When using a Claude Code hybrid proxy (port 8086) as an OpenAI-compatible provider, a model response was generated, streamed to completion via SSE (
stop_reason=end_turn), and received by the OpenClaw gateway — but never delivered to Slack. No error was logged. The user only received the tool progress markers (🔧 / ✅) but not the actual text response (~4,300 chars).Evidence
3b9e60f0) confirms the model generated a full response and completed normallyTimeline (2026-04-17, MDT)
[DONE]Suspected Root Causes (unconfirmed)
Environment
claudecode-hybridwithbaseUrl: http://localhost:8086/v1slack_mrkdwn)Impact
Intermittent — first observed occurrence. User saw tool progress indicators but no response text, and had to send another message to get a reply. The "lost" response was a detailed analysis that took ~40 seconds of model compute.
Notes