AGUI501

August 29, 2026 · View on GitHub

Severity: error · Group: Transport · Checked in: transport · Since: 0.x

Message: Malformed SSE framing: {detail}

Spec grounding

The spec has no single quotable sentence for this behavior; the rule is grounded in the linked section as a whole.

Source: https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation

Example

This rule is checked at the transport layer, so its fixture is a timed HTTP replay rather than a bare stream — see spec/fixtures/invalid/AGUI501-missing-data-prefix and the replay protocol in spec/fixtures/README.md:

{
  "contentType": "text/event-stream",
  "chunks": [
    {
      "gapMs": 0,
      "text": "data: {\"type\":\"RUN_STARTED\",\"threadId\":\"thread_001\",\"runId\":\"run_001\",\"timestamp\":1755300022900}\n\n"
    },
    {
      "gapMs": 0,
      "text": "{\"type\":\"CUSTOM\",\"name\":\"acme.ping\",\"value\":1,\"timestamp\":1755300023000}\n\n"
    },
    {
      "gapMs": 0,
      "text": "data: {\"type\":\"RUN_FINISHED\",\"threadId\":\"thread_001\",\"runId\":\"run_001\",\"outcome\":{\"type\":\"success\"},\"timestamp\":1755300023100}\n\n"
    }
  ]
}

Expected findings:

  • error AGUI501 at stream — Malformed SSE framing: line '{"type":"CUSTOM","name":"acme.ping","value":1,"timestamp":17…' looks like a JSON payload but lacks the 'data:' field prefix, so SSE clients silently drop it