rm -rf mlog/ mkdir -p mlog/relay mlog/client Running interop tests... Relay: ghcr.io/englishm/moq-interop-runner-moq-relay-ietf:latest Client: ghcr.io/englishm/moq-interop-runner-moq-dev-js-client:latest URL: https://relay:4443 time="2026-10-26T15:17:12Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-26T15:17:12Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-26T15:17:12Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-26T15:17:12Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." time="2026-10-26T15:17:12Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." Container runner-upstream-relay-1 Recreate Container runner-upstream-relay-1 Recreated Container runner-upstream-test-client-1 Recreate Container runner-upstream-test-client-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-10-26T15:17:12.285501Z  INFO moq_relay_ietf: using file coordinator: /tmp/moq-coordinator.json relay-1 | 2026-10-26T15:17:12.285552Z  INFO moq_native_ietf::quic: UDP socket bound bind=0.0.0.0:4443 local=0.0.0.0:4443 dual_stack=false relay-1 | 2026-10-26T15:17:12.285871Z  INFO moq_relay_ietf::relay: mlog output enabled: /mlog relay-1 | 2026-10-26T15:17:12.286036Z  INFO moq_relay_ietf::relay: listening on 0.0.0.0:4443 test-client-1 | TAP version 14 test-client-1 | # moq-dev-js-client v0.1.0 (@moq/net 0.4.4) test-client-1 | # Relay: https://relay:4443 test-client-1 | 1..8 relay-1 | 2026-10-26T15:17:18.301164Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=76a875b56eb90fe208e209a91c0cd2539d8fa0b0 test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:18.304919Z  INFO moq_relay_ietf::auth::scope: scope has no token authorization policy; admitting sessions on scope permissions alone scope="" relay-1 | 2026-10-26T15:17:18.304971Z  INFO moq_session{session_id=76a875b56eb90fe208e209a91c0cd2539d8fa0b0 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true test-client-1 | adapter: close() called test-client-1 | ok 1 - setup-only test-client-1 | --- test-client-1 | duration_ms: 106 test-client-1 | ... relay-1 | 2026-10-26T15:17:18.314701Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=91b40d8bc56a65be098e17a6aaf6233a24c565d3 test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:18.315864Z  INFO moq_session{session_id=91b40d8bc56a65be098e17a6aaf6233a24c565d3 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true relay-1 | 2026-10-26T15:17:18.320393Z  INFO moq_session{session_id=91b40d8bc56a65be098e17a6aaf6233a24c565d3 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: serving PUBLISH_NAMESPACE: PublishNamespaceInfo { request_id: 0, namespace: /moq-test/interop } namespace=/moq-test/interop relay-1 | 2026-10-26T15:17:18.321082Z  INFO moq_relay_ietf::file_coordinator: registering namespace: 6d6f712d74657374.696e7465726f70 -> https://0.0.0.0:4443/ namespace=6d6f712d74657374.696e7465726f70 scope= relay_url=https://0.0.0.0:4443/ test-client-1 | adapter: close() called test-client-1 | ok 2 - announce-only test-client-1 | --- test-client-1 | duration_ms: 509 test-client-1 | ... relay-1 | 2026-10-26T15:17:18.822862Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=6491db6fe1b235966e93c39d323037a3bd7086ce test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:18.823979Z  INFO moq_session{session_id=6491db6fe1b235966e93c39d323037a3bd7086ce interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true relay-1 | 2026-10-26T15:17:18.825012Z  INFO moq_session{session_id=6491db6fe1b235966e93c39d323037a3bd7086ce interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: serving PUBLISH_NAMESPACE: PublishNamespaceInfo { request_id: 0, namespace: /moq-test/interop } namespace=/moq-test/interop relay-1 | 2026-10-26T15:17:18.825096Z  INFO moq_relay_ietf::file_coordinator: registering namespace: 6d6f712d74657374.696e7465726f70 -> https://0.0.0.0:4443/ namespace=6d6f712d74657374.696e7465726f70 scope= relay_url=https://0.0.0.0:4443/ relay-1 | 2026-10-26T15:17:19.326339Z  INFO moq_session{session_id=6491db6fe1b235966e93c39d323037a3bd7086ce interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: PUBLISH_NAMESPACE closed namespace=/moq-test/interop test-client-1 | adapter: close() called test-client-1 | ok 3 - publish-namespace-done test-client-1 | --- test-client-1 | duration_ms: 708 test-client-1 | ... relay-1 | 2026-10-26T15:17:19.530321Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=6fc128ceaf6478f77ada92dc49fcdc62e6d48ba0 test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:19.531855Z  INFO moq_session{session_id=6fc128ceaf6478f77ada92dc49fcdc62e6d48ba0 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true test-client-1 | subscribe_namespace written: requestId=0 relay-1 | 2026-10-26T15:17:19.537056Z  INFO moq_session{session_id=6fc128ceaf6478f77ada92dc49fcdc62e6d48ba0 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe namespace namespace_prefix=/moq-test/interop/subscribe-namespace-lifecycle/382119fe947d40467b427cedf2a6dacf test-client-1 | https://relay:4443/ connected via WebTransport relay-1 | 2026-10-26T15:17:19.538057Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=6eb2df4f92db96f857e35ad4d1c6017bdaa0e5c4 test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:19.538742Z  INFO moq_session{session_id=6eb2df4f92db96f857e35ad4d1c6017bdaa0e5c4 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true relay-1 | 2026-10-26T15:17:19.539777Z  INFO moq_session{session_id=6eb2df4f92db96f857e35ad4d1c6017bdaa0e5c4 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: serving PUBLISH_NAMESPACE: PublishNamespaceInfo { request_id: 0, namespace: /moq-test/interop/subscribe-namespace-lifecycle/382119fe947d40467b427cedf2a6dacf } namespace=/moq-test/interop/subscribe-namespace-lifecycle/382119fe947d40467b427cedf2a6dacf relay-1 | 2026-10-26T15:17:19.539858Z  INFO moq_relay_ietf::file_coordinator: registering namespace: 6d6f712d74657374.696e7465726f70.7375627363726962652d6e616d6573706163652d6c6966656379636c65.3338323131396665393437643430343637623432376365646632613664616366 -> https://0.0.0.0:4443/ namespace=6d6f712d74657374.696e7465726f70.7375627363726962652d6e616d6573706163652d6c6966656379636c65.3338323131396665393437643430343637623432376365646632613664616366 scope= relay_url=https://0.0.0.0:4443/ test-client-1 | announced: broadcast=moq-test/interop/subscribe-namespace-lifecycle/382119fe947d40467b427cedf2a6dacf active=true relay-1 | 2026-10-26T15:17:19.541704Z  INFO moq_session{session_id=6eb2df4f92db96f857e35ad4d1c6017bdaa0e5c4 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: PUBLISH_NAMESPACE closed namespace=/moq-test/interop/subscribe-namespace-lifecycle/382119fe947d40467b427cedf2a6dacf test-client-1 | announced: broadcast=moq-test/interop/subscribe-namespace-lifecycle/382119fe947d40467b427cedf2a6dacf active=false test-client-1 | adapter: close() called test-client-1 | adapter: close() called test-client-1 | ok 4 - subscribe-namespace-lifecycle test-client-1 | --- test-client-1 | duration_ms: 16 test-client-1 | test_spec_revision: 1 test-client-1 | ... test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:19.545802Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=81dda18beace938c9314583b4d6741018be32fbd relay-1 | 2026-10-26T15:17:19.546435Z  INFO moq_session{session_id=81dda18beace938c9314583b4d6741018be32fbd interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true test-client-1 | subscribe start: id=2 broadcast=nonexistent/namespace track=test-track test-client-1 | subscribe written: id=2 broadcast=nonexistent/namespace track=test-track relay-1 | 2026-10-26T15:17:19.552137Z  INFO moq_session{session_id=81dda18beace938c9314583b4d6741018be32fbd interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe: SubscribeInfo { id: 2, track_namespace: /nonexistent/namespace, track_name: test-track, subscriber_priority: 255, group_order: Descending, forward: true, filter_type: AbsoluteStart, start_location: Some(Location { group_id: 0, object_id: 0 }), end_group_id: None, filter: Some(SubscriptionFilter { filter_type: AbsoluteStart, start_location: Some(Location { group_id: 0, object_id: 0 }), end_group_id: None }), params: { {16: 1}, {32: 255}, {33: [03 00 00]}, {34: 2} }, track_status: false } namespace=/nonexistent/namespace track=test-track test-client-1 | subscribe_namespace written: requestId=0 relay-1 | 2026-10-26T15:17:19.552357Z  WARN moq_session{session_id=81dda18beace938c9314583b4d6741018be32fbd interface=public relay_uid="-" scope_present=false}: moq_transport::serve::error: Not found: track '/nonexistent/namespace/test-track' not found in local or remote tracks at /build/moq-relay-ietf/src/producer.rs:389 error_id=977f3821-096a-4c30-8164-a132ef67a8c6 relay-1 | 2026-10-26T15:17:19.552488Z  WARN moq_session{session_id=81dda18beace938c9314583b4d6741018be32fbd interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: failed serving subscribe namespace=/nonexistent/namespace track=test-track subscribe_info=SubscribeInfo { id: 2, track_namespace: /nonexistent/namespace, track_name: test-track, subscriber_priority: 255, group_order: Descending, forward: true, filter_type: AbsoluteStart, start_location: Some(Location { group_id: 0, object_id: 0 }), end_group_id: None, filter: Some(SubscriptionFilter { filter_type: AbsoluteStart, start_location: Some(Location { group_id: 0, object_id: 0 }), end_group_id: None }), params: { {16: 1}, {32: 255}, {33: [03 00 00]}, {34: 2} }, track_status: false } error=not found: Track not found [error:977f3821-096a-4c30-8164-a132ef67a8c6] relay-1 | 2026-10-26T15:17:19.552658Z  INFO moq_session{session_id=81dda18beace938c9314583b4d6741018be32fbd interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe namespace namespace_prefix= test-client-1 | adapter: closing stream requestId=2 test-client-1 | subscribe error: id=2 broadcast=nonexistent/namespace track=test-track error=SUBSCRIBE error: does_not_exist (code=16) not found: Track not found [error:977f3821-096a-4c30-8164-a132ef67a8c6] test-client-1 | adapter: close() called test-client-1 | subscribe_namespace error: session error: connection error: closed test-client-1 | broadcast discovery failed; broadcasts resolve on request only. 162 | if (!this.#reader) { test-client-1 | 163 | return false; test-client-1 | 164 | } test-client-1 | 165 | // Every read of this stream funnels through here, so decoding the peer's reset code test-client-1 | 166 | // once is enough to keep the raw transport error out of every caller (and every app). test-client-1 | 167 | const result = await this.#reader.read().catch((err) => { test-client-1 | ^ test-client-1 | error: session error: connection error: closed test-client-1 | code: "GenericFailure" test-client-1 | test-client-1 | at async #fill (/app/node_modules/@moq/net/stream.js:167:50) test-client-1 | at async done (/app/node_modules/@moq/net/stream.js:333:29) test-client-1 | at async (/app/node_modules/@moq/net/ietf/subscriber.js:278:58) test-client-1 | test-client-1 | ok 5 - subscribe-error test-client-1 | --- test-client-1 | duration_ms: 313 test-client-1 | ... relay-1 | 2026-10-26T15:17:19.859498Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=78ac6c099747caf26069bf5ea685f2b494f2e774 test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:19.860421Z  INFO moq_session{session_id=78ac6c099747caf26069bf5ea685f2b494f2e774 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true relay-1 | 2026-10-26T15:17:19.861349Z  INFO moq_session{session_id=78ac6c099747caf26069bf5ea685f2b494f2e774 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: serving PUBLISH_NAMESPACE: PublishNamespaceInfo { request_id: 0, namespace: /moq-test/interop } namespace=/moq-test/interop relay-1 | 2026-10-26T15:17:19.861442Z  INFO moq_relay_ietf::file_coordinator: registering namespace: 6d6f712d74657374.696e7465726f70 -> https://0.0.0.0:4443/ namespace=6d6f712d74657374.696e7465726f70 scope= relay_url=https://0.0.0.0:4443/ test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:20.164140Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=f287c709ba2f29d8407462b05a571e3dcd5ac48b relay-1 | 2026-10-26T15:17:20.166760Z  INFO moq_session{session_id=f287c709ba2f29d8407462b05a571e3dcd5ac48b interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true test-client-1 | subscribe_namespace written: requestId=0 relay-1 | 2026-10-26T15:17:20.168124Z  INFO moq_session{session_id=f287c709ba2f29d8407462b05a571e3dcd5ac48b interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe namespace namespace_prefix= test-client-1 | announced: broadcast=moq-test/interop active=true test-client-1 | subscribe start: id=2 broadcast=moq-test/interop track=test-track test-client-1 | subscribe written: id=2 broadcast=moq-test/interop track=test-track relay-1 | 2026-10-26T15:17:20.170904Z  INFO moq_session{session_id=f287c709ba2f29d8407462b05a571e3dcd5ac48b interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe: SubscribeInfo { id: 2, track_namespace: /moq-test/interop, track_name: test-track, subscriber_priority: 255, group_order: Descending, forward: true, filter_type: AbsoluteStart, start_location: Some(Location { group_id: 0, object_id: 0 }), end_group_id: None, filter: Some(SubscriptionFilter { filter_type: AbsoluteStart, start_location: Some(Location { group_id: 0, object_id: 0 }), end_group_id: None }), params: { {16: 1}, {32: 255}, {33: [03 00 00]}, {34: 2} }, track_status: false } namespace=/moq-test/interop track=test-track relay-1 | 2026-10-26T15:17:20.171024Z  INFO moq_session{session_id=f287c709ba2f29d8407462b05a571e3dcd5ac48b interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe from local: Track { namespace: /moq-test/interop, name: test-track } namespace=/moq-test/interop track=test-track source="local" relay-1 | 2026-10-26T15:17:20.171076Z  INFO moq_session{session_id=78ac6c099747caf26069bf5ea685f2b494f2e774 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: forwarding subscribe: Track { namespace: /moq-test/interop, name: test-track } namespace=/moq-test/interop track=test-track test-client-1 | publish ok: broadcast=moq-test/interop track=test-track test-client-1 | subscribe ok: id=2 broadcast=moq-test/interop track=test-track test-client-1 | adapter: close() called test-client-1 | publish done: broadcast=moq-test/interop track=test-track test-client-1 | adapter: close() called test-client-1 | subscribe error: id=2 broadcast=moq-test/interop track=test-track error=subscribe stream ended without PUBLISH_DONE test-client-1 | announced: broadcast=moq-test/interop active=false test-client-1 | adapter: no stream for requestId=2 typeId=0xb test-client-1 | ok 6 - announce-subscribe test-client-1 | --- test-client-1 | duration_ms: 323 test-client-1 | ... test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:20.182072Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=2aa19da677ae8c0bc17b154def1efff42e22b848 relay-1 | 2026-10-26T15:17:20.182827Z  INFO moq_session{session_id=2aa19da677ae8c0bc17b154def1efff42e22b848 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true test-client-1 | subscribe_namespace written: requestId=0 relay-1 | 2026-10-26T15:17:20.183861Z  INFO moq_session{session_id=2aa19da677ae8c0bc17b154def1efff42e22b848 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe namespace namespace_prefix= relay-1 | 2026-10-26T15:17:20.688001Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=0d38391695c1d46a69e42f9d5dcae056a6e15c9e test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:20.688980Z  INFO moq_session{session_id=0d38391695c1d46a69e42f9d5dcae056a6e15c9e interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true relay-1 | 2026-10-26T15:17:20.689841Z  INFO moq_session{session_id=0d38391695c1d46a69e42f9d5dcae056a6e15c9e interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: serving PUBLISH_NAMESPACE: PublishNamespaceInfo { request_id: 0, namespace: /moq-test/interop } namespace=/moq-test/interop relay-1 | 2026-10-26T15:17:20.689949Z  INFO moq_relay_ietf::file_coordinator: registering namespace: 6d6f712d74657374.696e7465726f70 -> https://0.0.0.0:4443/ namespace=6d6f712d74657374.696e7465726f70 scope= relay_url=https://0.0.0.0:4443/ test-client-1 | announced: broadcast=moq-test/interop active=true test-client-1 | subscribe start: id=2 broadcast=moq-test/interop track=test-track test-client-1 | subscribe written: id=2 broadcast=moq-test/interop track=test-track relay-1 | 2026-10-26T15:17:20.691632Z  INFO moq_session{session_id=2aa19da677ae8c0bc17b154def1efff42e22b848 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe: SubscribeInfo { id: 2, track_namespace: /moq-test/interop, track_name: test-track, subscriber_priority: 255, group_order: Descending, forward: true, filter_type: AbsoluteStart, start_location: Some(Location { group_id: 0, object_id: 0 }), end_group_id: None, filter: Some(SubscriptionFilter { filter_type: AbsoluteStart, start_location: Some(Location { group_id: 0, object_id: 0 }), end_group_id: None }), params: { {16: 1}, {32: 255}, {33: [03 00 00]}, {34: 2} }, track_status: false } namespace=/moq-test/interop track=test-track relay-1 | 2026-10-26T15:17:20.691675Z  INFO moq_session{session_id=2aa19da677ae8c0bc17b154def1efff42e22b848 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe from local: Track { namespace: /moq-test/interop, name: test-track } namespace=/moq-test/interop track=test-track source="local" relay-1 | 2026-10-26T15:17:20.691694Z  INFO moq_session{session_id=0d38391695c1d46a69e42f9d5dcae056a6e15c9e interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: forwarding subscribe: Track { namespace: /moq-test/interop, name: test-track } namespace=/moq-test/interop track=test-track test-client-1 | publish ok: broadcast=moq-test/interop track=test-track test-client-1 | subscribe ok: id=2 broadcast=moq-test/interop track=test-track test-client-1 | adapter: close() called test-client-1 | publish done: broadcast=moq-test/interop track=test-track test-client-1 | adapter: close() called test-client-1 | subscribe error: id=2 broadcast=moq-test/interop track=test-track error=subscribe stream ended without PUBLISH_DONE test-client-1 | subscribe_namespace error: session error: connection error: closed test-client-1 | announced: broadcast=moq-test/interop active=false test-client-1 | broadcast discovery failed; broadcasts resolve on request only. 162 | if (!this.#reader) { test-client-1 | 163 | return false; test-client-1 | 164 | } test-client-1 | 165 | // Every read of this stream funnels through here, so decoding the peer's reset code test-client-1 | 166 | // once is enough to keep the raw transport error out of every caller (and every app). test-client-1 | 167 | const result = await this.#reader.read().catch((err) => { test-client-1 | ^ test-client-1 | error: session error: connection error: closed test-client-1 | code: "GenericFailure" test-client-1 | test-client-1 | at async #fill (/app/node_modules/@moq/net/stream.js:167:50) test-client-1 | at async done (/app/node_modules/@moq/net/stream.js:333:29) test-client-1 | at async (/app/node_modules/@moq/net/ietf/subscriber.js:278:58) test-client-1 | test-client-1 | ok 7 - subscribe-before-announce test-client-1 | --- test-client-1 | duration_ms: 515 test-client-1 | ... test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:20.696760Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=9487e224d75e224b1479c62f3638b030b1256dcc relay-1 | 2026-10-26T15:17:20.697333Z  INFO moq_session{session_id=9487e224d75e224b1479c62f3638b030b1256dcc interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true relay-1 | 2026-10-26T15:17:20.699040Z  INFO moq_session{session_id=9487e224d75e224b1479c62f3638b030b1256dcc interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: serving PUBLISH_NAMESPACE: PublishNamespaceInfo { request_id: 0, namespace: /moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688 } namespace=/moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688 relay-1 | 2026-10-26T15:17:20.699112Z  INFO moq_relay_ietf::file_coordinator: registering namespace: 6d6f712d74657374.646174612d73756267726f75702d6261736963.3863373433313638653935303265353531313738656336613332343864363838 -> https://0.0.0.0:4443/ namespace=6d6f712d74657374.646174612d73756267726f75702d6261736963.3863373433313638653935303265353531313738656336613332343864363838 scope= relay_url=https://0.0.0.0:4443/ relay-1 | 2026-10-26T15:17:20.700412Z  WARN moq_transport::session: Failed to create mlog: Permission denied (os error 13) session_id=9c6bdc00fcf5df13f8d414180f1bffd250973a32 test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moqt-16 relay-1 | 2026-10-26T15:17:20.701165Z  INFO moq_session{session_id=9c6bdc00fcf5df13f8d414180f1bffd250973a32 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::session: session established publish_permitted=true subscribe_permitted=true test-client-1 | subscribe_namespace written: requestId=0 relay-1 | 2026-10-26T15:17:20.703446Z  INFO moq_session{session_id=9c6bdc00fcf5df13f8d414180f1bffd250973a32 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe namespace namespace_prefix=/moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688 test-client-1 | announced: broadcast=moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688 active=true test-client-1 | subscribe start: id=2 broadcast=moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track test-client-1 | subscribe written: id=2 broadcast=moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track relay-1 | 2026-10-26T15:17:20.705434Z  INFO moq_session{session_id=9c6bdc00fcf5df13f8d414180f1bffd250973a32 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe: SubscribeInfo { id: 2, track_namespace: /moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0, track_name: track, subscriber_priority: 255, group_order: Descending, forward: true, filter_type: AbsoluteStart, start_location: Some(Location { group_id: 0, object_id: 0 }), end_group_id: None, filter: Some(SubscriptionFilter { filter_type: AbsoluteStart, start_location: Some(Location { group_id: 0, object_id: 0 }), end_group_id: None }), params: { {16: 1}, {32: 255}, {33: [03 00 00]}, {34: 2} }, track_status: false } namespace=/moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track relay-1 | 2026-10-26T15:17:20.705492Z  INFO moq_session{session_id=9c6bdc00fcf5df13f8d414180f1bffd250973a32 interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::producer: serving subscribe from local: Track { namespace: /moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0, name: track } namespace=/moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track source="local" relay-1 | 2026-10-26T15:17:20.705523Z  INFO moq_session{session_id=9487e224d75e224b1479c62f3638b030b1256dcc interface=public relay_uid="-" scope_present=false}: moq_relay_ietf::consumer: forwarding subscribe: Track { namespace: /moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0, name: track } namespace=/moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track test-client-1 | publish ok: broadcast=moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track test-client-1 | subscribe ok: id=2 broadcast=moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track test-client-1 | publish done: broadcast=moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track test-client-1 | adapter: closing stream requestId=2 test-client-1 | subscribe close: id=2 broadcast=moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track test-client-1 | adapter: close() called test-client-1 | adapter: close() called test-client-1 | subscribe_namespace error: session error: connection error: closed test-client-1 | announced: broadcast=moq-test/data-subgroup-basic/8c743168e9502e551178ec6a3248d688 active=false test-client-1 | broadcast discovery failed; broadcasts resolve on request only. 162 | if (!this.#reader) { test-client-1 | 163 | return false; test-client-1 | 164 | } test-client-1 | 165 | // Every read of this stream funnels through here, so decoding the peer's reset code test-client-1 | 166 | // once is enough to keep the raw transport error out of every caller (and every app). test-client-1 | 167 | const result = await this.#reader.read().catch((err) => { test-client-1 | ^ test-client-1 | error: session error: connection error: closed test-client-1 | code: "GenericFailure" test-client-1 | test-client-1 | at async #fill (/app/node_modules/@moq/net/stream.js:167:50) test-client-1 | at async done (/app/node_modules/@moq/net/stream.js:333:29) test-client-1 | at async (/app/node_modules/@moq/net/ietf/subscriber.js:278:58) test-client-1 | test-client-1 | ok 8 - data-subgroup-basic test-client-1 | --- test-client-1 | duration_ms: 49 test-client-1 | test_spec_revision: 2 test-client-1 | ... test-client-1 exited with code 0 Aborting on container exit... Container runner-upstream-test-client-1 Stopping Container runner-upstream-test-client-1 Stopped Container runner-upstream-relay-1 Stopping Container runner-upstream-relay-1 Stopped Test results in mlog/