make[1]: Entering directory '/home/runner/work/moq-interop-runner/moq-interop-runner/main' rm -rf mlog/ mkdir -p mlog/relay mlog/client Running interop tests... Relay: aiomoqt-interop-relay:latest Client: ghcr.io/englishm/moq-interop-runner-stitcher-moq-client:latest URL: https://relay:4443 time="2026-10-07T01:09:50Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-07T01:09:50Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-07T01:09:50Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-07T01:09:50Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." time="2026-10-07T01:09:50Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." Container main-relay-1 Recreate Container main-relay-1 Recreated Container main-test-client-1 Recreate Container main-test-client-1 Recreated Attaching to relay-1, test-client-1 relay-1 | aiomoqt ERSATZ-RELAY: an API demonstrator and conformance SUT — not a production relay (no auth, no cache, no hardening). relay-1 | 2026-10-07 01:09:51.318 INFO : Starting MOQT server on 0.0.0.0:4443 relay-1 | ================================================================ relay-1 | EXPERIMENTAL aiomoqt interop relay. relay-1 | NOT a production relay: no group cache, no auth, relay-1 | no scale handling. relay-1 | ================================================================ relay-1 | Listening on 0.0.0.0:4443 (H3/WebTransport, draft-[16, 18, 14]) test-client-1 | TAP version 14 test-client-1 | # stitcher-moq-client v0.2.0 (moq-net 0.3.8 via moq-tokio 0.19.20) test-client-1 | # Relay: https://relay:4443 test-client-1 | # Offered: moq-transport-22, moq-transport-21, moq-transport-20, moq-transport-19, moq-transport-18, moq-transport-17, moq-transport-16, moq-transport-15, moq-transport-14 test-client-1 | 1..7 test-client-1 | ok 1 - setup-only test-client-1 | --- test-client-1 | duration_ms: 31 test-client-1 | negotiated: moq-transport-18 test-client-1 | ... relay-1 | 2026-10-07 01:09:56.687 INFO : MOQT event: control message parsed: Setup(options={7: b'moq-lite-rs', 265044: 4163811204505590, 265050: 1, 265052: 1})) relay-1 | 2026-10-07 01:09:56.688 INFO : MOQT event: handle d18 Setup: Setup(options={7: b'moq-lite-rs', 265044: 4163811204505590, 265050: 1, 265052: 1}) relay-1 | 2026-10-07 01:09:56.688 INFO : MOQT: d18 server control write-uni: 15 relay-1 | 2026-10-07 01:09:56.689 INFO : MOQT event: control message parsed: Setup(options={7: b'moq-lite-rs', 265044: 6156292295282865, 265050: 1, 265052: 1})) relay-1 | 2026-10-07 01:09:56.689 INFO : MOQT event: handle d18 Setup: Setup(options={7: b'moq-lite-rs', 265044: 6156292295282865, 265050: 1, 265052: 1}) relay-1 | 2026-10-07 01:09:56.689 INFO : MOQT: d18 server control write-uni: 15 relay-1 | 2026-10-07 01:09:56.690 INFO : MOQT event: control message parsed: PublishNamespace(request_id=0, namespace=["moq-test", "interop"], parameters={})) relay-1 | 2026-10-07 01:09:56.690 INFO : relay: announce ns=(b'moq-test', b'interop') -> 1 publisher(s) relay-1 | 2026-10-07 01:09:56.690 INFO : MOQT send: RequestOk(request_id=0, parameters=None) request_id: 0 namespace: (b'moq-test', b'interop') test-client-1 | ok 2 - announce-only test-client-1 | --- test-client-1 | duration_ms: 703 test-client-1 | negotiated: moq-transport-18 test-client-1 | outcome: "PUBLISH_NAMESPACE not rejected: session healthy 700 ms later (moq-net does not surface PUBLISH_NAMESPACE_OK)" test-client-1 | ... relay-1 | 2026-10-07 01:09:57.391 INFO : MOQT: request 0 cancelled by STOP_SENDING (stream 4) relay-1 | 2026-10-07 01:09:57.393 INFO : MOQT event: control message parsed: Setup(options={7: b'moq-lite-rs', 265044: 7292642195562192, 265050: 1, 265052: 1})) relay-1 | 2026-10-07 01:09:57.393 INFO : MOQT event: handle d18 Setup: Setup(options={7: b'moq-lite-rs', 265044: 7292642195562192, 265050: 1, 265052: 1}) relay-1 | 2026-10-07 01:09:57.393 INFO : MOQT: d18 server control write-uni: 15 relay-1 | 2026-10-07 01:09:57.394 INFO : MOQT event: control message parsed: PublishNamespace(request_id=0, namespace=["moq-test", "interop"], parameters={})) relay-1 | 2026-10-07 01:09:57.394 INFO : relay: announce ns=(b'moq-test', b'interop') -> 2 publisher(s) relay-1 | 2026-10-07 01:09:57.394 INFO : MOQT send: RequestOk(request_id=0, parameters=None) request_id: 0 namespace: (b'moq-test', b'interop') relay-1 | 2026-10-07 01:09:57.895 INFO : MOQT: request 0 cancelled by STOP_SENDING (stream 4) test-client-1 | ok 3 - publish-namespace-done test-client-1 | --- test-client-1 | duration_ms: 805 test-client-1 | negotiated: moq-transport-18 test-client-1 | outcome: "PUBLISH_NAMESPACE_DONE sent; session healthy 300 ms later" test-client-1 | ... relay-1 | 2026-10-07 01:09:58.198 INFO : MOQT event: control message parsed: Setup(options={7: b'moq-lite-rs', 265044: 4877595679329045, 265050: 1, 265052: 1})) relay-1 | 2026-10-07 01:09:58.199 INFO : MOQT event: handle d18 Setup: Setup(options={7: b'moq-lite-rs', 265044: 4877595679329045, 265050: 1, 265052: 1}) relay-1 | 2026-10-07 01:09:58.199 INFO : MOQT: d18 server control write-uni: 15 relay-1 | 2026-10-07 01:09:58.199 INFO : MOQT event: control message parsed: SubscribeNamespace(request_id=0, namespace_prefix=["nonexistent", "namespace"], subscribe_options=0, parameters={})) relay-1 | 2026-10-07 01:09:58.200 INFO : MOQT send: RequestOk(request_id=0, parameters=None) relay-1 | 2026-10-07 01:09:58.200 INFO : relay: subscribe-namespace prefix=(b'nonexistent', b'namespace') (d18 discovery, subs=1) test-client-1 | ok 4 - subscribe-error # SKIP moq-net answers a request for an unannounced path locally (unroutable); no SUBSCRIBE reached the relay test-client-1 | --- test-client-1 | duration_ms: 303 test-client-1 | negotiated: moq-transport-18 test-client-1 | outcome: "request answered locally: unroutable" test-client-1 | ... test-client-1 | ok 5 - rendezvous-timeout # SKIP not implemented: moq-net 0.3 cannot put RENDEZVOUS_TIMEOUT on a SUBSCRIBE test-client-1 | --- test-client-1 | duration_ms: 0 test-client-1 | ... relay-1 | 2026-10-07 01:09:58.502 INFO : MOQT event: control message parsed: Setup(options={7: b'moq-lite-rs', 265044: 4340566148010144, 265050: 1, 265052: 1})) relay-1 | 2026-10-07 01:09:58.502 INFO : MOQT event: handle d18 Setup: Setup(options={7: b'moq-lite-rs', 265044: 4340566148010144, 265050: 1, 265052: 1}) relay-1 | 2026-10-07 01:09:58.502 INFO : MOQT: d18 server control write-uni: 15 relay-1 | 2026-10-07 01:09:58.503 INFO : MOQT event: control message parsed: PublishNamespace(request_id=0, namespace=["moq-test", "interop"], parameters={})) relay-1 | 2026-10-07 01:09:58.503 INFO : relay: announce ns=(b'moq-test', b'interop') -> 3 publisher(s) relay-1 | 2026-10-07 01:09:58.503 INFO : MOQT send: RequestOk(request_id=0, parameters=None) request_id: 0 namespace: (b'moq-test', b'interop') relay-1 | 2026-10-07 01:09:58.806 INFO : MOQT event: control message parsed: Setup(options={7: b'moq-lite-rs', 265044: 3151406401703177, 265050: 1, 265052: 1})) relay-1 | 2026-10-07 01:09:58.806 INFO : MOQT event: handle d18 Setup: Setup(options={7: b'moq-lite-rs', 265044: 3151406401703177, 265050: 1, 265052: 1}) relay-1 | 2026-10-07 01:09:58.806 INFO : MOQT: d18 server control write-uni: 15 relay-1 | 2026-10-07 01:09:58.807 INFO : MOQT event: control message parsed: SubscribeNamespace(request_id=0, namespace_prefix=["moq-test", "interop"], subscribe_options=0, parameters={})) relay-1 | 2026-10-07 01:09:58.807 INFO : MOQT send: RequestOk(request_id=0, parameters=None) relay-1 | 2026-10-07 01:09:58.807 INFO : MOQT send: Namespace(namespace_suffix=()) relay-1 | 2026-10-07 01:09:58.807 INFO : relay: subscribe-namespace prefix=(b'moq-test', b'interop') (d18 discovery, subs=2) relay-1 | 2026-10-07 01:09:58.808 INFO : MOQT event: control message parsed: Subscribe(request_id=2, track_namespace=["moq-test", "interop"], track_name="test-track", priority=255, group_order=2, forward=1, filter_type=2, start_group=None, start_object=None, end_group=None, parameters={}, track_alias=None, libquicr_compat=False)) relay-1 | 2026-10-07 01:09:58.808 INFO : MOQT send: Subscribe(request_id=1, track_namespace=["moq-test", "interop"], track_name="test-track", priority=None, group_order=None, forward=1, filter_type=2, start_group=0, start_object=0, end_group=0, parameters={}, track_alias=None, libquicr_compat=False) relay-1 | 2026-10-07 01:09:58.809 INFO : MOQT event: control message parsed: SubscribeOk(request_id=1, track_alias=1, expires=None, group_order=2, content_exists=0, largest_group_id=None, largest_object_id=None, parameters={}, track_extensions={8: 1000, 14: 255})) relay-1 | 2026-10-07 01:09:58.810 INFO : MOQT event: handle SubscribeOk(request_id=1, track_alias=1, expires=None, group_order=2, content_exists=0, largest_group_id=None, largest_object_id=None, parameters={}, track_extensions={8: 1000, 14: 255}) relay-1 | 2026-10-07 01:09:58.810 INFO : Track: subscribed (direct) to moq-test/interop/test-track relay-1 | 2026-10-07 01:09:58.810 INFO : relay: upstream established ns=(b'moq-test', b'interop') track=test-track alias=1 relay-1 | 2026-10-07 01:09:58.810 INFO : MOQT send: SubscribeOk(request_id=2, track_alias=0, expires=0, group_order=1, content_exists=0, largest_group_id=None, largest_object_id=None, parameters={}, track_extensions=None) relay-1 | 2026-10-07 01:09:58.810 INFO : relay: subscribe ns=(b'moq-test', b'interop') track=b'test-track' -> SUBSCRIBE_OK (fanout=1) test-client-1 | ok 6 - announce-subscribe test-client-1 | --- test-client-1 | duration_ms: 613 test-client-1 | negotiated: moq-transport-18 test-client-1 | outcome: "relay routed the SUBSCRIBE to the publisher (0 ms), no REQUEST_ERROR followed" test-client-1 | ... relay-1 | 2026-10-07 01:09:59.113 INFO : MOQT event: control message parsed: SubscribeDone(request_id=1, status_code=0, stream_count=0, reason=internal error)) relay-1 | 2026-10-07 01:09:59.113 INFO : MOQT event: handle SubscribeDone request_id=1 status=0 streams=0 relay-1 | 2026-10-07 01:09:59.114 INFO : relay: upstream PUBLISH_DONE ((b'moq-test', b'interop'), b'test-track') status=0 streams=0 -> 1 subscriber(s), objects in=0 out=0, upstream streams ended=0 relay-1 | 2026-10-07 01:09:59.114 INFO : MOQT send: SubscribeDone(request_id=2, status_code=0, stream_count=0, reason=internal error) relay-1 | 2026-10-07 01:09:59.114 INFO : MOQT: request 0 cancelled by STOP_SENDING (stream 4) relay-1 | 2026-10-07 01:09:59.114 INFO : MOQT: request 1 cancelled by STOP_SENDING (stream 1) relay-1 | 2026-10-07 01:09:59.115 INFO : MOQT event: control message parsed: Setup(options={7: b'moq-lite-rs', 265044: 2186996015181068, 265050: 1, 265052: 1})) relay-1 | 2026-10-07 01:09:59.115 INFO : MOQT event: handle d18 Setup: Setup(options={7: b'moq-lite-rs', 265044: 2186996015181068, 265050: 1, 265052: 1}) relay-1 | 2026-10-07 01:09:59.116 INFO : MOQT: d18 server control write-uni: 15 relay-1 | 2026-10-07 01:09:59.116 INFO : MOQT event: control message parsed: SubscribeNamespace(request_id=0, namespace_prefix=["moq-test", "interop"], subscribe_options=0, parameters={})) relay-1 | 2026-10-07 01:09:59.116 INFO : MOQT send: RequestOk(request_id=0, parameters=None) relay-1 | 2026-10-07 01:09:59.116 INFO : MOQT send: Namespace(namespace_suffix=()) relay-1 | 2026-10-07 01:09:59.116 INFO : relay: subscribe-namespace prefix=(b'moq-test', b'interop') (d18 discovery, subs=3) relay-1 | 2026-10-07 01:10:00.520 INFO : MOQT event: control message parsed: Setup(options={7: b'moq-lite-rs', 265044: 2344171053516585, 265050: 1, 265052: 1})) relay-1 | 2026-10-07 01:10:00.520 INFO : MOQT event: handle d18 Setup: Setup(options={7: b'moq-lite-rs', 265044: 2344171053516585, 265050: 1, 265052: 1}) relay-1 | 2026-10-07 01:10:00.520 INFO : MOQT: d18 server control write-uni: 15 relay-1 | 2026-10-07 01:10:00.520 INFO : MOQT event: control message parsed: PublishNamespace(request_id=0, namespace=["moq-test", "interop"], parameters={})) relay-1 | 2026-10-07 01:10:00.521 INFO : relay: announce ns=(b'moq-test', b'interop') -> 4 publisher(s) relay-1 | 2026-10-07 01:10:00.521 INFO : MOQT send: Namespace(namespace_suffix=()) relay-1 | 2026-10-07 01:10:00.521 INFO : MOQT send: Namespace(namespace_suffix=()) relay-1 | 2026-10-07 01:10:00.521 INFO : MOQT send: RequestOk(request_id=0, parameters=None) request_id: 0 namespace: (b'moq-test', b'interop') relay-1 | 2026-10-07 01:10:01.521 INFO : MOQT event: control message parsed: Subscribe(request_id=2, track_namespace=["moq-test", "interop"], track_name="test-track", priority=255, group_order=2, forward=1, filter_type=2, start_group=None, start_object=None, end_group=None, parameters={}, track_alias=None, libquicr_compat=False)) relay-1 | 2026-10-07 01:10:01.521 INFO : MOQT send: Subscribe(request_id=1, track_namespace=["moq-test", "interop"], track_name="test-track", priority=None, group_order=None, forward=1, filter_type=2, start_group=0, start_object=0, end_group=0, parameters={}, track_alias=None, libquicr_compat=False) relay-1 | 2026-10-07 01:10:01.522 INFO : MOQT event: control message parsed: SubscribeOk(request_id=1, track_alias=1, expires=None, group_order=2, content_exists=0, largest_group_id=None, largest_object_id=None, parameters={}, track_extensions={8: 1000, 14: 255})) relay-1 | 2026-10-07 01:10:01.522 INFO : MOQT event: handle SubscribeOk(request_id=1, track_alias=1, expires=None, group_order=2, content_exists=0, largest_group_id=None, largest_object_id=None, parameters={}, track_extensions={8: 1000, 14: 255}) relay-1 | 2026-10-07 01:10:01.522 INFO : Track: subscribed (direct) to moq-test/interop/test-track relay-1 | 2026-10-07 01:10:01.522 INFO : relay: upstream established ns=(b'moq-test', b'interop') track=test-track alias=1 relay-1 | 2026-10-07 01:10:01.523 INFO : MOQT send: SubscribeOk(request_id=2, track_alias=0, expires=0, group_order=1, content_exists=0, largest_group_id=None, largest_object_id=None, parameters={}, track_extensions=None) relay-1 | 2026-10-07 01:10:01.523 INFO : relay: subscribe ns=(b'moq-test', b'interop') track=b'test-track' -> SUBSCRIBE_OK (fanout=1) test-client-1 | ok 7 - subscribe-before-announce test-client-1 | --- test-client-1 | duration_ms: 2712 test-client-1 | negotiated: moq-transport-18 test-client-1 | outcome: "relay still advertised moq-test/interop from an earlier session when the subscriber connected, so subscribe-first ordering is unverified; after the late announce the SUBSCRIBE reached the publisher (0 ms), no REQUEST_ERROR followed" test-client-1 | ... relay-1 | 2026-10-07 01:10:01.826 INFO : MOQT event: control message parsed: SubscribeDone(request_id=1, status_code=0, stream_count=0, reason=internal error)) relay-1 | 2026-10-07 01:10:01.826 INFO : MOQT event: handle SubscribeDone request_id=1 status=0 streams=0 relay-1 | 2026-10-07 01:10:01.826 INFO : relay: upstream PUBLISH_DONE ((b'moq-test', b'interop'), b'test-track') status=0 streams=0 -> 1 subscriber(s), objects in=0 out=0, upstream streams ended=0 relay-1 | 2026-10-07 01:10:01.826 INFO : MOQT: request 0 cancelled by STOP_SENDING (stream 4) relay-1 | 2026-10-07 01:10:01.826 INFO : MOQT: request 1 cancelled by STOP_SENDING (stream 1) relay-1 | 2026-10-07 01:10:01.826 INFO : MOQT send: SubscribeDone(request_id=2, status_code=0, stream_count=0, reason=internal error) test-client-1 exited with code 0 Aborting on container exit... Container main-test-client-1 Stopping Container main-test-client-1 Stopped Container main-relay-1 Stopping Container main-relay-1 Stopped Test results in mlog/ make[1]: Leaving directory '/home/runner/work/moq-interop-runner/moq-interop-runner/main'