Summary

  • In revision 22 of the Media over QUIC Transport draft, FORWARD=0 pauses Object delivery on one established subscription, but control messages such as PUBLISH_DONE continue.
  • If every downstream viewer is paused, a relay may still leave its upstream subscription running to warm its cache. A pause receipt therefore does not prove that acquisition, resource use or cache mutation stopped.

A viewer presses pause. The player freezes. Its traffic meter falls. The service records that the subscription is paused. Those facts look like one event, but a relay between viewer and publisher may be making a different decision: continue receiving the live track so that playback can restart with less delay.

That is not necessarily a fault. It is an explicit trade-off in revision 22 of draft-ietf-moq-transport, dated 1 October 2026. The draft defines MOQT as a publish/subscribe protocol over QUIC and WebTransport. Datatracker lists it as an active Media Over QUIC working-group Internet-Draft. It remains work in progress, not an RFC or evidence that a named service has deployed this behavior. The document header says Standards Track while Datatracker currently displays no intended RFC status; neither label should be promoted into approval.

The revision sharpens language that already existed. Revision 21 called the switch a Forward State of 0 or 1. Revision 22 says plainly that an established subscription is paused or not paused, and its change log records that editorial shift. The underlying rule was not invented on 1 October. What changed is the clarity with which operators can name and test it.

The local rule is precise. A publisher sends no Objects on a paused subscription. It still sends control messages, including PUBLISH_DONE. The subscription initiator sets the initial value with the FORWARD parameter in PUBLISH or SUBSCRIBE. Later, the subscriber sends REQUEST_UPDATE with FORWARD=0 to pause or FORWARD=1 to resume. Values outside that one-bit choice are a protocol violation.

“Paused” is therefore not “cancelled”. Subscription state remains until cancellation, PUBLISH_DONE or REQUEST_ERROR, subject to the draft's stream rules. Nor is pause a time machine. If FILL_PARAMETERS arrive while the subscription is paused, they open no fill-fetch stream; resuming without sending them again does not recreate that request. A consumer that wants history after a pause must preserve the distinction between ongoing forwarding and an explicit fill operation.

The stream evidence also changes. If a sender closes a subgroup stream before delivering every relevant Object, it must reset the stream. Revision 22 names omission caused by pause as one such case. A clean FIN can support a claim that the subgroup was complete from the subscription's start. A reset says that more Objects may exist. Both are valid transport events, but they are not equivalent receipts.

The most consequential boundary appears at the relay. If at least one downstream subscriber is not paused, the relay must maintain an unpaused upstream subscription so it can receive and forward the requested Objects. When every downstream subscriber is paused, however, the relay chooses whether to pause upstream.

Leaving upstream unpaused starts Object delivery and pre-warms the cache. Resume latency can improve, but upstream and publisher resources are spent on content nobody downstream is currently receiving. Pausing upstream avoids that work but can make the later restart slower. The specification does not hide the incentive. It assigns the choice locally.

This means a green “paused” indicator has a smaller evidential scope than many cost or privacy claims built around it. It proves, at most, a state associated with a particular subscription and publisher. It does not prove that the relay stopped acquiring the track, that the publisher stopped working, that a cache stopped changing, or that billable transport went to zero. Equally, it does not prove that the relay kept the stream warm. That requires observation of the upstream leg and the relay's policy.

The useful operating model has seven records: the subscriber's ordered pause intent; the publisher's acknowledged pause state; cessation of downstream Objects; continued control-plane events; the relay's upstream policy decision; measured upstream traffic and cache mutation; and the resume result visible to the audience. Each can fail or diverge independently.

Heng Lu's Minimum Initial Specification provides the right division of responsibility. The common wire contract should define exactly what FORWARD changes. It should not pretend to settle every operator's latency-versus-resource policy. Running-Code Primacy then moves proof from a configuration label to captured downstream and upstream behavior. Reality Layers keeps the viewer's frozen frame, the protocol's paused state, the relay's cache and the publisher's work from being merged into one word.

The result is a modest but important governance rule for programmable infrastructure: authority follows the boundary named by the command. A viewer can suspend delivery to itself. That action does not automatically acquire authority over a relay's upstream strategy. If a product promises more—no upstream fetch, no cache write, no resource charge—it needs a separate enforceable control and a separate receipt.

Sources