NousResearch/hermes-agent
CORS headers missing on SSE streaming endpoints
Cluster 3378 · gateway. Data as of
Nothing open on GitHub. Fix merged in #3573 on 28 Mar 2026. Check it covers your case.
The short answer
0open issues
0open PRs
3items grouped
- Known?
- Yes. 3 related items grouped here, 1 issue already closed.
- Fix event
- A fix was merged to main in PR #3573. Check it covers your case. No release data is tracked.
- Tracker
- The maintainers' tracker marks this
unresolved. That is separate from the fix event. - Still open
- Nothing open on GitHub.
Bug reports and fixes addressing missing CORS headers on Server-Sent Events (SSE) streaming endpoints, which causes cross-origin requests to fail. Multiple fix attempts target the /v1/runs/{run_id}/events endpoint and general streaming responses.
Open issues0
Open PRs0
Fixes on record
-
#3573 fix(api-server): add CORS headers to streaming SSE responses
files:
gateway/platforms/api_server.pyShow the diff
-
gateway/platforms/api_server.py@@ -582,10 +582,14 @@ async def _write_sse_chat_completion( """ import queue as _q - response = web.StreamResponse( - status=200, - headers={"Content-Type": "text/event-stream", "Cache-Control": "no-cache"}, - ) + sse_headers = {"Content-Type": "text/event-stream", "Cache-Control": "no-cache"} + # CORS middleware can't inject headers into StreamResponse after + # prepare() flushes them, so resolve CORS headers up front. + origin = request.headers.get("Origin", "") + cors = self._cors_headers_for_origin(origin) if origin else None + if cors: + sse_headers.update(cors) + response = web.StreamResponse(status=200, headers=sse_headers) await response.prepare(request) try:
-
1 PR closed without merging
From the close comments: merged via another change 1
-
#3381 fix(api-server): add CORS headers to streaming SSE responses · merged via another change →
#3573
Closed issues · 1
- Closed#3378[Bug]: headers missing on streaming responses (stream:true)
How this cluster was grouped
-
Link evidence (
structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference. -
Pairwise link density
0.67: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36.1.00means every pair is linked.
Pick up a Lab task
Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.
Open the LabAt a glance
- Subsystem
- gateway
- Merged PRs
- #3573
- Closed issues
- 1
- Attempts
- 1 PR closed without merging
- Fix link checked
- 28 Mar 2026. This confirmation is old and may be out of date (a revert or reopen would not have invalidated it here); re-verify.