rm -rf mlog/ mkdir -p mlog/relay mlog/client Running interop tests... Relay: moq-interop-relay:local Client: ghcr.io/englishm/moq-interop-runner-moq-dev-js-client:latest URL: https://relay:4443 time="2026-10-26T15:12:21Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-26T15:12:21Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-26T15:12:21Z" level=warning msg="The \"PORT\" variable is not set. Defaulting to a blank string." time="2026-10-26T15:12:21Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." time="2026-10-26T15:12:21Z" level=warning msg="The \"HEX\" variable is not set. Defaulting to a blank string." Container runner-upstream-test-client-1 Recreate Container runner-upstream-test-client-1 Recreated Attaching to relay-1, test-client-1 relay-1 | 2026-10-26T15:12:21.680858Z  WARN moq_sock::bind: UDP receive buffer is smaller than requested; raise `net.core.rmem_max` or expect packet loss under load wanted=8388608 granted=1048576 relay-1 | 2026-10-26T15:12:21.680883Z  WARN moq_sock::bind: UDP send buffer is smaller than requested; raise `net.core.wmem_max` or expect packet loss under load wanted=8388608 granted=212992 relay-1 | 2026-10-26T15:12:21.681065Z  INFO moq_relay::cluster: cluster initialized hop_id=3292914928359293 configured=false relay-1 | 2026-10-26T15:12:21.681112Z  INFO moq_relay::relay: listening addr=[::]:4443 kind="quic" relay-1 | 2026-10-26T15:12:21.681205Z  INFO moq_relay::cluster: no cluster peers configured; running standalone 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 test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 test-client-1 | ok 1 - setup-only test-client-1 | --- test-client-1 | duration_ms: 140 test-client-1 | ... test-client-1 | fatal error running connection error: session error: connection error: closed test-client-1 | code: "GenericFailure" test-client-1 | test-client-1 | test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 relay-1 | 2026-10-26T15:12:27.736891Z  INFO conn{id=0 remote=[::ffff:172.18.0.3]:50486 session="706e9ea89639f1be1c37acd1ed5fa7b7"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:27.737026Z  INFO conn{id=0 remote=[::ffff:172.18.0.3]:50486 session="706e9ea89639f1be1c37acd1ed5fa7b7"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport test-client-1 | announce: prefix= test-client-1 | announce: broadcast=moq-test/interop active=true relay-1 | 2026-10-26T15:12:28.235937Z  WARN conn{id=0 remote=[::ffff:172.18.0.3]:50486 session="706e9ea89639f1be1c37acd1ed5fa7b7"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:28.235995Z  WARN conn{id=0 remote=[::ffff:172.18.0.3]:50486 session="706e9ea89639f1be1c37acd1ed5fa7b7"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:28.236024Z  WARN conn{id=0 remote=[::ffff:172.18.0.3]:50486 session="706e9ea89639f1be1c37acd1ed5fa7b7"}: moq_net::lite::session: session error err=no error relay-1 | 2026-10-26T15:12:28.236205Z  WARN conn{id=0 remote=[::ffff:172.18.0.3]:50486 session="706e9ea89639f1be1c37acd1ed5fa7b7"}: moq_relay::connection: connection closed id=0 err=cancelled test-client-1 | ok 2 - announce-only test-client-1 | --- test-client-1 | duration_ms: 507 test-client-1 | ... test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 relay-1 | 2026-10-26T15:12:28.241232Z  INFO conn{id=1 remote=[::ffff:172.18.0.3]:40607 session="7a70f0ea27c8c0ae931209629dd97f8d"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:28.241318Z  INFO conn{id=1 remote=[::ffff:172.18.0.3]:40607 session="7a70f0ea27c8c0ae931209629dd97f8d"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport test-client-1 | announce: prefix= test-client-1 | announce: broadcast=moq-test/interop active=true test-client-1 | announce: broadcast=moq-test/interop active=false relay-1 | 2026-10-26T15:12:28.941846Z  WARN conn{id=1 remote=[::ffff:172.18.0.3]:40607 session="7a70f0ea27c8c0ae931209629dd97f8d"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:28.941884Z  WARN conn{id=1 remote=[::ffff:172.18.0.3]:40607 session="7a70f0ea27c8c0ae931209629dd97f8d"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:28.941897Z  WARN conn{id=1 remote=[::ffff:172.18.0.3]:40607 session="7a70f0ea27c8c0ae931209629dd97f8d"}: moq_net::lite::session: session error err=no error test-client-1 | ok 3 - publish-namespace-done test-client-1 | --- test-client-1 | duration_ms: 705 test-client-1 | ... relay-1 | 2026-10-26T15:12:28.942098Z  WARN conn{id=1 remote=[::ffff:172.18.0.3]:40607 session="7a70f0ea27c8c0ae931209629dd97f8d"}: moq_relay::connection: connection closed id=1 err=cancelled test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 test-client-1 | announced: prefix=moq-test/interop/subscribe-namespace-lifecycle/68e2cf02a0934117504b4067994a862e test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 relay-1 | 2026-10-26T15:12:28.952457Z  INFO conn{id=2 remote=[::ffff:172.18.0.3]:41910 session="a985060b46de7c7c8c64bf42781c4995"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:28.952575Z  INFO conn{id=2 remote=[::ffff:172.18.0.3]:41910 session="a985060b46de7c7c8c64bf42781c4995"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport test-client-1 | announce: prefix= relay-1 | 2026-10-26T15:12:28.955314Z  INFO conn{id=3 remote=[::ffff:172.18.0.3]:35898 session="71b2b7b1ee05f2175bc76c2722dfaabd"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:28.955410Z  INFO conn{id=3 remote=[::ffff:172.18.0.3]:35898 session="71b2b7b1ee05f2175bc76c2722dfaabd"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport test-client-1 | announce: prefix= test-client-1 | announce: broadcast=moq-test/interop/subscribe-namespace-lifecycle/68e2cf02a0934117504b4067994a862e active=true test-client-1 | announced: broadcast=moq-test/interop/subscribe-namespace-lifecycle/68e2cf02a0934117504b4067994a862e active=true test-client-1 | announce: broadcast=moq-test/interop/subscribe-namespace-lifecycle/68e2cf02a0934117504b4067994a862e active=false test-client-1 | announced: broadcast=moq-test/interop/subscribe-namespace-lifecycle/68e2cf02a0934117504b4067994a862e active=false relay-1 | 2026-10-26T15:12:28.959582Z  WARN conn{id=3 remote=[::ffff:172.18.0.3]:35898 session="71b2b7b1ee05f2175bc76c2722dfaabd"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:28.959597Z  WARN conn{id=3 remote=[::ffff:172.18.0.3]:35898 session="71b2b7b1ee05f2175bc76c2722dfaabd"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:28.959606Z  WARN conn{id=3 remote=[::ffff:172.18.0.3]:35898 session="71b2b7b1ee05f2175bc76c2722dfaabd"}: moq_net::lite::session: session error err=no error relay-1 | 2026-10-26T15:12:28.959721Z  WARN conn{id=3 remote=[::ffff:172.18.0.3]:35898 session="71b2b7b1ee05f2175bc76c2722dfaabd"}: moq_relay::connection: connection closed id=3 err=cancelled relay-1 | 2026-10-26T15:12:28.960175Z  WARN conn{id=2 remote=[::ffff:172.18.0.3]:41910 session="a985060b46de7c7c8c64bf42781c4995"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:28.960194Z  WARN conn{id=2 remote=[::ffff:172.18.0.3]:41910 session="a985060b46de7c7c8c64bf42781c4995"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:28.960230Z  WARN conn{id=2 remote=[::ffff:172.18.0.3]:41910 session="a985060b46de7c7c8c64bf42781c4995"}: moq_net::lite::session: session error err=no error relay-1 | 2026-10-26T15:12:28.960333Z  WARN conn{id=2 remote=[::ffff:172.18.0.3]:41910 session="a985060b46de7c7c8c64bf42781c4995"}: moq_relay::connection: connection closed id=2 err=cancelled test-client-1 | ok 4 - subscribe-namespace-lifecycle test-client-1 | --- test-client-1 | duration_ms: 18 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: moq-lite-06 test-client-1 | announced: prefix= test-client-1 | subscribe start: id=0 broadcast=nonexistent/namespace track=test-track relay-1 | 2026-10-26T15:12:28.969671Z  INFO conn{id=4 remote=[::ffff:172.18.0.3]:38369 session="a73665f6b34a30d2165ec5fdb9b2777e"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:28.969760Z  INFO conn{id=4 remote=[::ffff:172.18.0.3]:38369 session="a73665f6b34a30d2165ec5fdb9b2777e"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport relay-1 | 2026-10-26T15:12:28.969879Z  WARN conn{id=4 remote=[::ffff:172.18.0.3]:38369 session="a73665f6b34a30d2165ec5fdb9b2777e"}: moq_net::lite::publisher: track info error broadcast=nonexistent/namespace track=test-track err=unroutable test-client-1 | subscribe error: id=0 broadcast=nonexistent/namespace track=test-track error=RESET_STREAM: 54 test-client-1 | announce: prefix= relay-1 | 2026-10-26T15:12:29.271693Z  WARN conn{id=4 remote=[::ffff:172.18.0.3]:38369 session="a73665f6b34a30d2165ec5fdb9b2777e"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:29.271723Z  WARN conn{id=4 remote=[::ffff:172.18.0.3]:38369 session="a73665f6b34a30d2165ec5fdb9b2777e"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:29.271739Z  WARN conn{id=4 remote=[::ffff:172.18.0.3]:38369 session="a73665f6b34a30d2165ec5fdb9b2777e"}: moq_net::lite::session: session error err=no error relay-1 | 2026-10-26T15:12:29.271880Z  WARN conn{id=4 remote=[::ffff:172.18.0.3]:38369 session="a73665f6b34a30d2165ec5fdb9b2777e"}: moq_relay::connection: connection closed id=4 err=cancelled 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 decodeAnnounceBroadcastMaybe (/app/node_modules/@moq/net/lite/announce.js:257:21) test-client-1 | test-client-1 | ok 5 - subscribe-error test-client-1 | --- test-client-1 | duration_ms: 312 test-client-1 | ... test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 relay-1 | 2026-10-26T15:12:29.277308Z  INFO conn{id=5 remote=[::ffff:172.18.0.3]:35631 session="0be44c7ee03793862048e7c467fa6b95"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:29.277385Z  INFO conn{id=5 remote=[::ffff:172.18.0.3]:35631 session="0be44c7ee03793862048e7c467fa6b95"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport test-client-1 | announce: prefix= test-client-1 | announce: broadcast=moq-test/interop active=true test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 test-client-1 | announced: prefix= relay-1 | 2026-10-26T15:12:29.582035Z  INFO conn{id=6 remote=[::ffff:172.18.0.3]:45594 session="8eba9ad6ba6fb3348f13c1fe964a0da9"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:29.582121Z  INFO conn{id=6 remote=[::ffff:172.18.0.3]:45594 session="8eba9ad6ba6fb3348f13c1fe964a0da9"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport test-client-1 | announced: broadcast=moq-test/interop active=true test-client-1 | subscribe start: id=0 broadcast=moq-test/interop track=test-track test-client-1 | announce: prefix= test-client-1 | track info: broadcast=moq-test/interop track=test-track test-client-1 | announce: broadcast=moq-test/interop active=false relay-1 | 2026-10-26T15:12:29.588805Z  WARN conn{id=5 remote=[::ffff:172.18.0.3]:35631 session="0be44c7ee03793862048e7c467fa6b95"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:29.588835Z  WARN conn{id=5 remote=[::ffff:172.18.0.3]:35631 session="0be44c7ee03793862048e7c467fa6b95"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:29.588845Z  WARN conn{id=5 remote=[::ffff:172.18.0.3]:35631 session="0be44c7ee03793862048e7c467fa6b95"}: moq_net::lite::session: session error err=no error relay-1 | 2026-10-26T15:12:29.589078Z  WARN conn{id=5 remote=[::ffff:172.18.0.3]:35631 session="0be44c7ee03793862048e7c467fa6b95"}: moq_relay::connection: connection closed id=5 err=cancelled relay-1 | 2026-10-26T15:12:29.589867Z  WARN conn{id=6 remote=[::ffff:172.18.0.3]:45594 session="8eba9ad6ba6fb3348f13c1fe964a0da9"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:29.589892Z  WARN conn{id=6 remote=[::ffff:172.18.0.3]:45594 session="8eba9ad6ba6fb3348f13c1fe964a0da9"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:29.589915Z  WARN conn{id=6 remote=[::ffff:172.18.0.3]:45594 session="8eba9ad6ba6fb3348f13c1fe964a0da9"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:29.589924Z  WARN conn{id=6 remote=[::ffff:172.18.0.3]:45594 session="8eba9ad6ba6fb3348f13c1fe964a0da9"}: moq_net::lite::session: session error err=no error relay-1 | 2026-10-26T15:12:29.590199Z  WARN conn{id=6 remote=[::ffff:172.18.0.3]:45594 session="8eba9ad6ba6fb3348f13c1fe964a0da9"}: moq_relay::connection: connection closed id=6 err=cancelled test-client-1 | announced: broadcast=moq-test/interop active=false test-client-1 | ok 6 - announce-subscribe test-client-1 | --- test-client-1 | duration_ms: 318 test-client-1 | ... test-client-1 | subscribe error: id=0 broadcast=moq-test/interop track=test-track error=session error: connection error: closed test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 test-client-1 | announced: prefix= relay-1 | 2026-10-26T15:12:29.596225Z  INFO conn{id=7 remote=[::ffff:172.18.0.3]:60890 session="e857abce20f86bee3f7d065907d22502"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:29.596320Z  INFO conn{id=7 remote=[::ffff:172.18.0.3]:60890 session="e857abce20f86bee3f7d065907d22502"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport test-client-1 | announce: prefix= test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 relay-1 | 2026-10-26T15:12:30.101261Z  INFO conn{id=8 remote=[::ffff:172.18.0.3]:60539 session="926d979e40ee641dda1d9beb72fa4be9"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:30.101357Z  INFO conn{id=8 remote=[::ffff:172.18.0.3]:60539 session="926d979e40ee641dda1d9beb72fa4be9"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport test-client-1 | announce: prefix= test-client-1 | announce: broadcast=moq-test/interop active=true test-client-1 | announced: broadcast=moq-test/interop active=true test-client-1 | subscribe start: id=0 broadcast=moq-test/interop track=test-track test-client-1 | track info: broadcast=moq-test/interop track=test-track test-client-1 | announce: broadcast=moq-test/interop active=false test-client-1 | announced: broadcast=moq-test/interop active=false relay-1 | 2026-10-26T15:12:30.106221Z  WARN conn{id=8 remote=[::ffff:172.18.0.3]:60539 session="926d979e40ee641dda1d9beb72fa4be9"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:30.106246Z  WARN conn{id=8 remote=[::ffff:172.18.0.3]:60539 session="926d979e40ee641dda1d9beb72fa4be9"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:30.106258Z  WARN conn{id=8 remote=[::ffff:172.18.0.3]:60539 session="926d979e40ee641dda1d9beb72fa4be9"}: moq_net::lite::session: session error err=no error relay-1 | 2026-10-26T15:12:30.106458Z  WARN conn{id=8 remote=[::ffff:172.18.0.3]:60539 session="926d979e40ee641dda1d9beb72fa4be9"}: moq_relay::connection: connection closed id=8 err=cancelled relay-1 | 2026-10-26T15:12:30.107254Z  WARN conn{id=7 remote=[::ffff:172.18.0.3]:60890 session="e857abce20f86bee3f7d065907d22502"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:30.107272Z  WARN conn{id=7 remote=[::ffff:172.18.0.3]:60890 session="e857abce20f86bee3f7d065907d22502"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:30.107280Z  WARN conn{id=7 remote=[::ffff:172.18.0.3]:60890 session="e857abce20f86bee3f7d065907d22502"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:30.107287Z  WARN conn{id=7 remote=[::ffff:172.18.0.3]:60890 session="e857abce20f86bee3f7d065907d22502"}: moq_net::lite::session: session error err=no error relay-1 | 2026-10-26T15:12:30.107362Z  WARN conn{id=7 remote=[::ffff:172.18.0.3]:60890 session="e857abce20f86bee3f7d065907d22502"}: moq_relay::connection: connection closed id=7 err=cancelled test-client-1 | subscribe ok: id=0 broadcast=moq-test/interop track=test-track test-client-1 | subscribe close: id=0 broadcast=moq-test/interop track=test-track 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 decodeAnnounceBroadcastMaybe (/app/node_modules/@moq/net/lite/announce.js:257:21) test-client-1 | test-client-1 | ok 7 - subscribe-before-announce test-client-1 | --- test-client-1 | duration_ms: 518 test-client-1 | ... test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 relay-1 | 2026-10-26T15:12:30.113938Z  INFO conn{id=9 remote=[::ffff:172.18.0.3]:39430 session="1bef1d33762e9523cc81dc39e5f23ee3"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:30.114058Z  INFO conn{id=9 remote=[::ffff:172.18.0.3]:39430 session="1bef1d33762e9523cc81dc39e5f23ee3"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport test-client-1 | announce: prefix= test-client-1 | announce: broadcast=moq-test/data-subgroup-basic/5f28b822300bb84c9edee14e82f0d01b active=true test-client-1 | https://relay:4443/ connected via WebTransport test-client-1 | https://relay:4443/ negotiated ALPN: moq-lite-06 test-client-1 | announced: prefix=moq-test/data-subgroup-basic/5f28b822300bb84c9edee14e82f0d01b relay-1 | 2026-10-26T15:12:30.118077Z  INFO conn{id=10 remote=[::ffff:172.18.0.3]:60191 session="7c6b6351de7fdbc5935b96850e6530ac"}: moq_relay::cluster: session accepted transport=webtransport request.role=None tier= root= publish=Some(Patterns([Pattern("**")])) subscribe=Some(Patterns([Pattern("**")])) relay-1 | 2026-10-26T15:12:30.118150Z  INFO conn{id=10 remote=[::ffff:172.18.0.3]:60191 session="7c6b6351de7fdbc5935b96850e6530ac"}: moq_relay::connection: negotiated version=moq-lite-06 transport=webtransport test-client-1 | announced: broadcast=moq-test/data-subgroup-basic/5f28b822300bb84c9edee14e82f0d01b active=true test-client-1 | subscribe start: id=0 broadcast=moq-test/data-subgroup-basic/5f28b822300bb84c9edee14e82f0d01b/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track test-client-1 | announce: prefix= test-client-1 | track info: broadcast=moq-test/data-subgroup-basic/5f28b822300bb84c9edee14e82f0d01b/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=0 broadcast=moq-test/data-subgroup-basic/5f28b822300bb84c9edee14e82f0d01b/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/5f28b822300bb84c9edee14e82f0d01b/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track test-client-1 | subscribe update: id=0 broadcast=moq-test/data-subgroup-basic/5f28b822300bb84c9edee14e82f0d01b/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/5f28b822300bb84c9edee14e82f0d01b/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track test-client-1 | subscribe close: id=0 broadcast=moq-test/data-subgroup-basic/5f28b822300bb84c9edee14e82f0d01b/moq-test-00/0/0/0/2/4/5/64/32/2/1/1/0/-1/-1/0 track=track test-client-1 | announce: broadcast=moq-test/data-subgroup-basic/5f28b822300bb84c9edee14e82f0d01b active=false relay-1 | 2026-10-26T15:12:30.194709Z  WARN conn{id=9 remote=[::ffff:172.18.0.3]:39430 session="1bef1d33762e9523cc81dc39e5f23ee3"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:30.194740Z  WARN conn{id=9 remote=[::ffff:172.18.0.3]:39430 session="1bef1d33762e9523cc81dc39e5f23ee3"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:30.194750Z  WARN conn{id=9 remote=[::ffff:172.18.0.3]:39430 session="1bef1d33762e9523cc81dc39e5f23ee3"}: moq_net::lite::session: session error err=no error relay-1 | 2026-10-26T15:12:30.194922Z  WARN conn{id=9 remote=[::ffff:172.18.0.3]:39430 session="1bef1d33762e9523cc81dc39e5f23ee3"}: moq_relay::connection: connection closed id=9 err=cancelled test-client-1 | announced: broadcast=moq-test/data-subgroup-basic/5f28b822300bb84c9edee14e82f0d01b active=false relay-1 | 2026-10-26T15:12:30.195678Z  WARN conn{id=10 remote=[::ffff:172.18.0.3]:60191 session="7c6b6351de7fdbc5935b96850e6530ac"}: moq_net::lite::publisher: probe stream error err=no error relay-1 | 2026-10-26T15:12:30.195693Z  WARN conn{id=10 remote=[::ffff:172.18.0.3]:60191 session="7c6b6351de7fdbc5935b96850e6530ac"}: moq_net::lite::publisher: control stream error err=no error relay-1 | 2026-10-26T15:12:30.195710Z  WARN conn{id=10 remote=[::ffff:172.18.0.3]:60191 session="7c6b6351de7fdbc5935b96850e6530ac"}: moq_net::lite::session: session error err=no error relay-1 | 2026-10-26T15:12:30.195915Z  WARN conn{id=10 remote=[::ffff:172.18.0.3]:60191 session="7c6b6351de7fdbc5935b96850e6530ac"}: moq_relay::connection: connection closed id=10 err=cancelled 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 decodeAnnounceBroadcastMaybe (/app/node_modules/@moq/net/lite/announce.js:257:21) test-client-1 | test-client-1 | ok 8 - data-subgroup-basic test-client-1 | --- test-client-1 | duration_ms: 87 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/