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: ghcr.io/englishm/moq-interop-runner-moq-relay-ietf-draft-16:latest Client: ghcr.io/gmarzot/aiomoqt:latest URL: https://relay:4443 time="2026-07-01T01:06:32Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-07-01T01:06:32Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-07-01T01:06:32Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-07-01T01:06:32Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." time="2026-07-01T01:06:32Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." Container main-relay-1 Recreate Container main-relay-1 Recreated Attaching to relay-1, test-client-1 relay-1 | Starting moq-rs relay on port 4443 relay-1 | Cert: /certs/cert.pem relay-1 | Key: /certs/priv.key relay-1 | Mlog: /mlog relay-1 | 2026-07-01T01:06:38.987446Z  WARN web_transport_quinn::session: unknown capsule typ=0 size=7 test-client-1 | [PASS] setup-only: SERVER_SETUP received with compatible version test-client-1 | [PASS] announce-only: PUBLISH_NAMESPACE_OK received test-client-1 | [PASS] publish-namespace-done: PUBLISH_NAMESPACE_OK received, PUBLISH_NAMESPACE_DONE sent relay-1 | [2026-07-01T01:06:39Z ERROR moq_relay_ietf::producer] failed to route to remote: namespace not found test-client-1 | [PASS] subscribe-error: Error received (expected): code=4 test-client-1 | 2026-07-01 01:06:39.104 ERROR: handle_control_message: error handling control message: RuntimeError: RuntimeError('non-compliant peer: truncated trailing extensions block (kvp_start=6 tell=7 exts_end=7 parsed_kvps=0)') test-client-1 | 2026-07-01 01:06:39.106 ERROR: handle_control_message: traceback: test-client-1 | Traceback (most recent call last): test-client-1 | File "/app/aiomoqt/messages/base.py", line 169, in _extensions_decode test-client-1 | ext_value = buf.pull_uint_var() test-client-1 | ^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 181, in aiopquic._binding._buffer.Buffer.pull_uint_var test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 183, in aiopquic._binding._buffer.Buffer.pull_uint_var test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | test-client-1 | During handling of the above exception, another exception occurred: test-client-1 | test-client-1 | Traceback (most recent call last): test-client-1 | File "/app/aiomoqt/protocol.py", line 529, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, prof=self._profile, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/subscribe.py", line 505, in deserialize test-client-1 | track_extensions = MOQTMessage._extensions_decode( test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 184, in _extensions_decode test-client-1 | raise RuntimeError( test-client-1 | RuntimeError: non-compliant peer: truncated trailing extensions block (kvp_start=6 tell=7 exts_end=7 parsed_kvps=0) test-client-1 | test-client-1 | ERROR asyncio: Exception in callback _Dispatcher._drain() test-client-1 | handle: test-client-1 | Traceback (most recent call last): test-client-1 | File "/app/aiomoqt/messages/base.py", line 169, in _extensions_decode test-client-1 | ext_value = buf.pull_uint_var() test-client-1 | ^^^^^^^^^^^^^^^^^^^ test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 181, in aiopquic._binding._buffer.Buffer.pull_uint_var test-client-1 | File "src/aiopquic/_binding/_buffer.pyx", line 183, in aiopquic._binding._buffer.Buffer.pull_uint_var test-client-1 | aiopquic._binding._buffer.BufferReadError: read out of bounds test-client-1 | test-client-1 | During handling of the above exception, another exception occurred: test-client-1 | test-client-1 | Traceback (most recent call last): test-client-1 | File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run test-client-1 | self._context.run(self._callback, *self._args) test-client-1 | File "/usr/local/lib/python3.12/site-packages/aiopquic/asyncio/webtransport.py", line 840, in _drain test-client-1 | session._on_event(ev) test-client-1 | File "/app/aiomoqt/protocol.py", line 2838, in _on_event test-client-1 | self.quic_event_received(StreamDataReceived( test-client-1 | File "/app/aiomoqt/protocol.py", line 1270, in quic_event_received test-client-1 | self._drain_control_buffer(msg_buf, msg_len) test-client-1 | File "/app/aiomoqt/protocol.py", line 1118, in _drain_control_buffer test-client-1 | msg = self._moqt_handle_control_message(msg_buf) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/protocol.py", line 529, in _moqt_handle_control_message test-client-1 | msg = message_class.deserialize(buf, prof=self._profile, buf_end=end_pos) test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/subscribe.py", line 505, in deserialize test-client-1 | track_extensions = MOQTMessage._extensions_decode( test-client-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-client-1 | File "/app/aiomoqt/messages/base.py", line 184, in _extensions_decode test-client-1 | raise RuntimeError( test-client-1 | RuntimeError: non-compliant peer: truncated trailing extensions block (kvp_start=6 tell=7 exts_end=7 parsed_kvps=0) test-client-1 | [PASS (COMPAT)] announce-subscribe: relay holds subscription pending (forward-and-wait); no SUBSCRIBE_OK within 5s relay-1 | [2026-07-01T01:06:44Z ERROR moq_relay_ietf::producer] failed to route to remote: namespace not found test-client-1 | [PASS] subscribe-before-announce: Error received (valid: relay didn't buffer): code=4 test-client-1 | TAP version 14 test-client-1 | # date: 2026-07-01T01:06:38Z test-client-1 | # ended: 2026-07-01T01:06:44Z test-client-1 | # target: https://relay:4443 test-client-1 | # version: aiomoqt/0.10.5 test-client-1 | # note: preference probe pinned draft-16 test-client-1 | 1..6 test-client-1 | ok 1 - setup-only test-client-1 | --- test-client-1 | duration_ms: 2.2 test-client-1 | connection_id: unknown test-client-1 | message: SERVER_SETUP received with compatible version test-client-1 | ... test-client-1 | ok 2 - announce-only test-client-1 | --- test-client-1 | duration_ms: 3.3 test-client-1 | connection_id: unknown test-client-1 | message: PUBLISH_NAMESPACE_OK received test-client-1 | ... test-client-1 | ok 3 - publish-namespace-done test-client-1 | --- test-client-1 | duration_ms: 102.8 test-client-1 | connection_id: unknown test-client-1 | message: PUBLISH_NAMESPACE_OK received, PUBLISH_NAMESPACE_DONE sent test-client-1 | ... test-client-1 | ok 4 - subscribe-error test-client-1 | --- test-client-1 | duration_ms: 3.4 test-client-1 | connection_id: unknown test-client-1 | message: Error received (expected): code=4 test-client-1 | expected: SUBSCRIBE_ERROR code=TRACK_DOES_NOT_EXIST test-client-1 | ... test-client-1 | ok 5 - announce-subscribe # COMPAT test-client-1 | --- test-client-1 | duration_ms: 5005.9 test-client-1 | publisher_connection_id: unknown test-client-1 | subscriber_connection_id: unknown test-client-1 | message: relay holds subscription pending (forward-and-wait); no SUBSCRIBE_OK within 5s test-client-1 | compat: true test-client-1 | compat_note: relay held the subscription pending without an eager SUBSCRIBE_OK; accepted as a valid forward-and-wait relay model (matches moq-rs) test-client-1 | wire_noncompliance: 1 test-client-1 | ... test-client-1 | ok 6 - subscribe-before-announce test-client-1 | --- test-client-1 | duration_ms: 507.7 test-client-1 | publisher_connection_id: unknown test-client-1 | subscriber_connection_id: unknown test-client-1 | message: Error received (valid: relay didn't buffer): code=4 test-client-1 | ... test-client-1 | # wire_noncompliance_total: trailing_extensions=1 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'