make[1]: Entering directory '/home/runner/work/moq-interop-runner/moq-interop-runner/main' Running tests against https://cdn.moq.dev/anon... Client: ghcr.io/englishm/moq-interop-runner-moq-dev-js-client:latest docker run --rm \ --network host \ -e RELAY_URL=https://cdn.moq.dev/anon \ -e TLS_DISABLE_VERIFY=false \ ghcr.io/englishm/moq-interop-runner-moq-dev-js-client:latest TAP version 14 # moq-dev-js-client v0.1.0 # Relay: https://cdn.moq.dev/anon 1..6 Non serverCertificateHashes certificate verification is an experimental feature for webtransport node client and not covered by tests and thus may be broken (DO NOT USE IN PRODUCTION) unhandled rejection: 555 | this.closeHook() 556 | delete this.closeHook 557 | } 558 | 559 | // closed before connected 560 | const error = new WebTransportError('Opening handshake failed.') ^ WebTransportError: Opening handshake failed. Symbol.toStringTag: "WebTransportError", at onClose (/app/node_modules/@fails-components/webtransport/lib/session.js:560:21) at (/app/node_modules/@fails-components/webtransport-transport-http3-quiche/lib/clientsocket.js:52:21) at emit (node:events:98:22) at data (node:dgram:168:22) https://cdn.moq.dev/anon no WebTransport after 200ms, attempting WebSocket fallback https://cdn.moq.dev/anon using WebSocket fallback; the user experience may be degraded https://cdn.moq.dev/anon sending client setup ClientSetup { versions: [ 4279086338, 4279086337, 4278190094 ], parameters: Parameters { vars: Map(1) { 2n: 42069n, }, bytes: Map(1) { 7n: Uint8Array(11) [ 109, 111, 113, 45, 108, 105, 116, 101, 45, 106, 115 ], }, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon received server setup ServerSetup { version: 4279086338, parameters: Parameters { vars: Map {}, bytes: Map {}, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon moq-lite session established session stream closed ok 1 - setup-only --- duration_ms: 493 ... unhandled rejection: 201 | this.closed, 202 | ]); 203 | this.#sendStreams.delete(streamId); 204 | }, 205 | }); 206 | this.#incomingBidirectionalStreams.enqueue({ readable: reader, writable: writer }); ^ TypeError: Invalid state: Controller is already closed code: "ERR_INVALID_STATE" at #handleStreamFrame (/app/node_modules/@moq/web-transport-ws/session.js:206:52) at #recvFrame (/app/node_modules/@moq/web-transport-ws/session.js:119:18) at #handleMessage (/app/node_modules/@moq/web-transport-ws/session.js:98:18) Non serverCertificateHashes certificate verification is an experimental feature for webtransport node client and not covered by tests and thus may be broken (DO NOT USE IN PRODUCTION) https://cdn.moq.dev/anon sending client setup ClientSetup { versions: [ 4279086338, 4279086337, 4278190094 ], parameters: Parameters { vars: Map(1) { 2n: 42069n, }, bytes: Map(1) { 7n: Uint8Array(11) [ 109, 111, 113, 45, 108, 105, 116, 101, 45, 106, 115 ], }, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon received server setup ServerSetup { version: 4279086338, parameters: Parameters { vars: Map {}, bytes: Map {}, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon moq-lite session established announce: prefix= announce: broadcast=moq-test/interop active=true ok 2 - announce-only --- duration_ms: 673 ... session stream closed Non serverCertificateHashes certificate verification is an experimental feature for webtransport node client and not covered by tests and thus may be broken (DO NOT USE IN PRODUCTION) unhandled rejection: 555 | this.closeHook() 556 | delete this.closeHook 557 | } 558 | 559 | // closed before connected 560 | const error = new WebTransportError('Opening handshake failed.') ^ WebTransportError: Opening handshake failed. Symbol.toStringTag: "WebTransportError", at onClose (/app/node_modules/@fails-components/webtransport/lib/session.js:560:21) at (/app/node_modules/@fails-components/webtransport-transport-http3-quiche/lib/clientsocket.js:52:21) at emit (node:events:98:22) at data (node:dgram:168:22) https://cdn.moq.dev/anon using WebSocket fallback; the user experience may be degraded https://cdn.moq.dev/anon sending client setup ClientSetup { versions: [ 4279086338, 4279086337, 4278190094 ], parameters: Parameters { vars: Map(1) { 2n: 42069n, }, bytes: Map(1) { 7n: Uint8Array(11) [ 109, 111, 113, 45, 108, 105, 116, 101, 45, 106, 115 ], }, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon received server setup ServerSetup { version: 4279086338, parameters: Parameters { vars: Map {}, bytes: Map {}, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon moq-lite session established announce: prefix= announce: broadcast=moq-test/interop active=true announce: broadcast=moq-test/interop active=false ok 3 - publish-namespace-done --- duration_ms: 905 ... session stream closed Non serverCertificateHashes certificate verification is an experimental feature for webtransport node client and not covered by tests and thus may be broken (DO NOT USE IN PRODUCTION) unhandled rejection: 555 | this.closeHook() 556 | delete this.closeHook 557 | } 558 | 559 | // closed before connected 560 | const error = new WebTransportError('Opening handshake failed.') ^ WebTransportError: Opening handshake failed. Symbol.toStringTag: "WebTransportError", at onClose (/app/node_modules/@fails-components/webtransport/lib/session.js:560:21) at (/app/node_modules/@fails-components/webtransport-transport-http3-quiche/lib/clientsocket.js:52:21) at emit (node:events:98:22) at data (node:dgram:168:22) https://cdn.moq.dev/anon using WebSocket fallback; the user experience may be degraded https://cdn.moq.dev/anon sending client setup ClientSetup { versions: [ 4279086338, 4279086337, 4278190094 ], parameters: Parameters { vars: Map(1) { 2n: 42069n, }, bytes: Map(1) { 7n: Uint8Array(11) [ 109, 111, 113, 45, 108, 105, 116, 101, 45, 106, 115 ], }, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon received server setup ServerSetup { version: 4279086338, parameters: Parameters { vars: Map {}, bytes: Map {}, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon moq-lite session established subscribe start: id=0 broadcast=nonexistent/namespace track=test-track announce: prefix= subscribe error: id=0 broadcast=nonexistent/namespace track=test-track error=RESET_STREAM: 13 abort 220 | #handleResetStream(frame) { 221 | const streamId = frame.id.value.value; 222 | const stream = this.#recvStreams.get(streamId); 223 | if (!stream) 224 | return; 225 | stream.error(new Error(`RESET_STREAM: ${frame.code.value}`)); ^ error: RESET_STREAM: 13 at #handleResetStream (/app/node_modules/@moq/web-transport-ws/session.js:225:26) at #recvFrame (/app/node_modules/@moq/web-transport-ws/session.js:122:18) at #handleMessage (/app/node_modules/@moq/web-transport-ws/session.js:98:18) session stream closed ok 4 - subscribe-error --- duration_ms: 272 ... Non serverCertificateHashes certificate verification is an experimental feature for webtransport node client and not covered by tests and thus may be broken (DO NOT USE IN PRODUCTION) https://cdn.moq.dev/anon sending client setup ClientSetup { versions: [ 4279086338, 4279086337, 4278190094 ], parameters: Parameters { vars: Map(1) { 2n: 42069n, }, bytes: Map(1) { 7n: Uint8Array(11) [ 109, 111, 113, 45, 108, 105, 116, 101, 45, 106, 115 ], }, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon received server setup ServerSetup { version: 4279086338, parameters: Parameters { vars: Map {}, bytes: Map {}, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon moq-lite session established announce: prefix= announce: broadcast=moq-test/interop active=true Non serverCertificateHashes certificate verification is an experimental feature for webtransport node client and not covered by tests and thus may be broken (DO NOT USE IN PRODUCTION) unhandled rejection: 555 | this.closeHook() 556 | delete this.closeHook 557 | } 558 | 559 | // closed before connected 560 | const error = new WebTransportError('Opening handshake failed.') ^ WebTransportError: Opening handshake failed. Symbol.toStringTag: "WebTransportError", at onClose (/app/node_modules/@fails-components/webtransport/lib/session.js:560:21) at (/app/node_modules/@fails-components/webtransport-transport-http3-quiche/lib/clientsocket.js:52:21) at emit (node:events:98:22) at data (node:dgram:168:22) https://cdn.moq.dev/anon using WebSocket fallback; the user experience may be degraded https://cdn.moq.dev/anon sending client setup ClientSetup { versions: [ 4279086338, 4279086337, 4278190094 ], parameters: Parameters { vars: Map(1) { 2n: 42069n, }, bytes: Map(1) { 7n: Uint8Array(11) [ 109, 111, 113, 45, 108, 105, 116, 101, 45, 106, 115 ], }, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon received server setup ServerSetup { version: 4279086338, parameters: Parameters { vars: Map {}, bytes: Map {}, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon moq-lite session established subscribe start: id=0 broadcast=moq-test/interop track=test-track announce: prefix= publish ok: broadcast=moq-test/interop track=test-track subscribe ok: id=0 broadcast=moq-test/interop track=test-track subscribe error: id=0 broadcast=moq-test/interop track=test-track error=RESET_STREAM: 4 abort 220 | #handleResetStream(frame) { 221 | const streamId = frame.id.value.value; 222 | const stream = this.#recvStreams.get(streamId); 223 | if (!stream) 224 | return; 225 | stream.error(new Error(`RESET_STREAM: ${frame.code.value}`)); ^ error: RESET_STREAM: 4 at #handleResetStream (/app/node_modules/@moq/web-transport-ws/session.js:225:26) at #recvFrame (/app/node_modules/@moq/web-transport-ws/session.js:122:18) at #handleMessage (/app/node_modules/@moq/web-transport-ws/session.js:98:18) publish error: broadcast=moq-test/interop track=test-track error=Session closed (on process 1) with code 0 and reason publish done: broadcast=moq-test/interop track=test-track session stream closed session stream closed ok 5 - announce-subscribe --- duration_ms: 2284 ... Non serverCertificateHashes certificate verification is an experimental feature for webtransport node client and not covered by tests and thus may be broken (DO NOT USE IN PRODUCTION) unhandled rejection: 555 | this.closeHook() 556 | delete this.closeHook 557 | } 558 | 559 | // closed before connected 560 | const error = new WebTransportError('Opening handshake failed.') ^ WebTransportError: Opening handshake failed. Symbol.toStringTag: "WebTransportError", at onClose (/app/node_modules/@fails-components/webtransport/lib/session.js:560:21) at (/app/node_modules/@fails-components/webtransport-transport-http3-quiche/lib/clientsocket.js:52:21) at emit (node:events:98:22) at data (node:dgram:168:22) https://cdn.moq.dev/anon using WebSocket fallback; the user experience may be degraded https://cdn.moq.dev/anon sending client setup ClientSetup { versions: [ 4279086338, 4279086337, 4278190094 ], parameters: Parameters { vars: Map(1) { 2n: 42069n, }, bytes: Map(1) { 7n: Uint8Array(11) [ 109, 111, 113, 45, 108, 105, 116, 101, 45, 106, 115 ], }, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon received server setup ServerSetup { version: 4279086338, parameters: Parameters { vars: Map {}, bytes: Map {}, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon moq-lite session established subscribe start: id=0 broadcast=moq-test/interop track=test-track announce: prefix= subscribe error: id=0 broadcast=moq-test/interop track=test-track error=RESET_STREAM: 13 abort 220 | #handleResetStream(frame) { 221 | const streamId = frame.id.value.value; 222 | const stream = this.#recvStreams.get(streamId); 223 | if (!stream) 224 | return; 225 | stream.error(new Error(`RESET_STREAM: ${frame.code.value}`)); ^ error: RESET_STREAM: 13 at #handleResetStream (/app/node_modules/@moq/web-transport-ws/session.js:225:26) at #recvFrame (/app/node_modules/@moq/web-transport-ws/session.js:122:18) at #handleMessage (/app/node_modules/@moq/web-transport-ws/session.js:98:18) Non serverCertificateHashes certificate verification is an experimental feature for webtransport node client and not covered by tests and thus may be broken (DO NOT USE IN PRODUCTION) https://cdn.moq.dev/anon sending client setup ClientSetup { versions: [ 4279086338, 4279086337, 4278190094 ], parameters: Parameters { vars: Map(1) { 2n: 42069n, }, bytes: Map(1) { 7n: Uint8Array(11) [ 109, 111, 113, 45, 108, 105, 116, 101, 45, 106, 115 ], }, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon received server setup ServerSetup { version: 4279086338, parameters: Parameters { vars: Map {}, bytes: Map {}, size: [Getter], setBytes: [Function: setBytes], setVarint: [Function: setVarint], getBytes: [Function: getBytes], getVarint: [Function: getVarint], removeBytes: [Function: removeBytes], removeVarint: [Function: removeVarint], encode: [AsyncFunction: encode], }, encode: [AsyncFunction: encode], } https://cdn.moq.dev/anon moq-lite session established announce: prefix= session stream closed session stream closed ok 6 - subscribe-before-announce --- duration_ms: 869 ... make[1]: Leaving directory '/home/runner/work/moq-interop-runner/moq-interop-runner/main'