wucm667
2f109e74ca
fix: emit response.failed when compact keepalive commits headers but no SSE payload
...
When OpenAI Responses streaming has compact keepalive commit 200 headers
but no semantic SSE event has been written, upstream 4xx errors were
silently swallowed, causing clients to hang until timeout.
The fix distinguishes between 'headers committed' and 'meaningful SSE
output written'. Compact keepalive may commit headers for heartbeat
purposes without writing actual SSE events. In that case, the Responses
stream still needs its protocol-correct terminal response.failed event.
Preserves existing behavior when a complete upstream response or
meaningful SSE payload was already communicated, and preserves image
keepalive semantics.
Fixes #5289
2026-08-05 16:28:16 +08:00
..
2026-08-04 20:57:15 +08:00
2026-08-04 20:57:15 +08:00
2026-07-20 11:15:37 +08:00
2026-08-04 15:09:29 +08:00
2026-08-04 20:57:15 +08:00
2026-06-11 18:55:27 +08:00
2026-08-04 20:57:15 +08:00
2026-08-04 15:09:29 +08:00
2026-07-16 13:47:50 +08:00
2026-08-04 20:57:15 +08:00
2026-08-04 20:57:15 +08:00
2026-08-04 20:57:15 +08:00
2026-07-28 17:21:32 +08:00
2026-08-04 15:09:29 +08:00
2026-08-04 20:57:15 +08:00
2026-07-28 17:21:32 +08:00
2026-08-04 20:57:15 +08:00
2026-07-29 12:32:44 +08:00
2026-07-29 12:32:44 +08:00
2026-07-24 01:22:34 +08:00
2026-07-15 22:22:51 +08:00
2026-08-01 21:15:44 +08:00
2026-08-01 21:15:44 +08:00
2026-06-16 11:41:54 +08:00
2026-07-23 09:20:52 +08:00
2026-07-26 20:23:50 +09:00
2026-07-26 20:23:50 +09:00
2026-08-01 22:39:33 +08:00
2026-07-20 02:20:58 +08:00
2026-08-01 22:39:33 +08:00
2026-07-23 09:20:52 +08:00
2026-08-01 22:39:33 +08:00
2026-07-26 20:23:50 +09:00
2026-07-27 15:20:03 +00:00
2026-08-01 22:39:33 +08:00
2026-07-13 11:35:46 +08:00
2026-07-27 15:20:03 +00:00
2026-08-01 22:39:33 +08:00
2026-07-13 15:32:42 +08:00
2026-07-06 16:45:15 +08:00
2026-07-14 14:55:30 +08:00
2026-07-14 14:55:30 +08:00
2026-07-23 09:20:52 +08:00
2026-07-15 22:42:53 +08:00
2026-07-23 09:20:52 +08:00
2026-08-01 22:39:33 +08:00
2026-07-18 21:38:17 +08:00
2026-08-01 22:39:33 +08:00
2026-07-28 16:19:41 +08:00
2026-05-05 03:26:54 +08:00
2026-07-20 15:20:51 +08:00
2026-07-15 19:57:37 -07:00
2026-07-19 00:56:21 -07:00
2026-08-04 13:48:19 +08:00
2026-08-04 13:48:19 +08:00
2026-07-17 22:10:18 +08:00
2026-07-23 09:19:24 +08:00
2026-08-01 22:39:33 +08:00
2026-07-16 00:52:26 +08:00
2026-08-03 11:28:38 +08:00
2026-07-16 17:10:44 +08:00
2026-07-27 18:42:34 +08:00
2026-08-01 22:39:33 +08:00
2026-07-11 12:51:53 +08:00
2026-07-14 22:40:05 +08:00
2026-08-01 22:39:32 +08:00
2026-07-23 00:06:04 +08:00
2026-07-26 20:23:50 +09:00
2026-06-12 01:47:01 +08:00
2026-07-15 13:01:16 +08:00
2026-08-05 16:28:16 +08:00
2026-08-05 16:28:16 +08:00
2026-07-26 13:33:56 +08:00
2026-07-26 13:33:56 +08:00
2026-07-17 15:29:14 +08:00
2026-07-15 04:20:11 +08:00
2026-07-23 23:04:00 +08:00
2026-08-01 22:39:33 +08:00
2026-07-25 12:50:46 +08:00
2026-07-25 12:51:20 +08:00
2026-08-01 22:39:32 +08:00
2026-08-01 22:39:33 +08:00
2026-06-28 11:13:09 +08:00
2026-07-15 09:29:05 +08:00
2026-07-19 18:49:08 +08:00
2026-08-01 22:39:33 +08:00
2026-07-12 04:53:41 +08:00
2026-07-18 00:11:18 +08:00
2026-06-12 01:47:01 +08:00
2026-07-18 20:46:50 +08:00
2026-07-23 09:20:18 +08:00
2026-07-18 00:11:18 +08:00
2026-07-23 09:19:25 +08:00
2026-06-10 14:16:51 +08:00
2026-08-04 15:09:29 +08:00
2026-08-04 20:57:15 +08:00
2026-07-13 15:22:39 +08:00
2026-07-22 19:18:04 +08:00
2026-07-09 11:15:52 +08:00
2026-07-07 13:53:39 +08:00
2026-07-07 13:53:39 +08:00
2026-07-17 00:39:39 +08:00
2026-07-17 00:39:39 +08:00
2026-07-17 08:46:57 +08:00
2026-07-17 08:46:57 +08:00
2026-07-17 00:39:39 +08:00
2026-07-17 00:39:39 +08:00
2026-08-04 15:09:29 +08:00
2026-08-04 20:57:15 +08:00
2026-07-07 10:20:23 +08:00
2026-07-16 16:49:08 +08:00
2026-07-08 13:50:49 +08:00
2026-07-08 13:50:49 +08:00
2026-08-01 11:29:58 +08:00
2026-07-28 17:21:32 +08:00
2026-08-04 20:57:15 +08:00