{
  "test": {
    "id": "tests/1.0/unordered/rebalancing",
    "directory": "tests/1.0/unordered/rebalancing",
    "manifestPath": "tests/1.0/unordered/rebalancing/manifest.ttl",
    "scenarioPath": "tests/1.0/unordered/rebalancing/scenario.yaml",
    "expectedPath": "tests/1.0/unordered/rebalancing/expected/events.ndjson",
    "iri": "https://www.pieter.pm/ldes-client-conformance-test-suite/1.0#unordered-rebalancing",
    "title": "Redirected and gone pages do not cause loss or duplicate emission during rebalancing",
    "description": "The server first publishes one member, then rebalances the page through redirect and 410 Gone responses; the client must retain state, avoid duplicate emission, and still discover the new member.",
    "requirement": "LDES10-UNORD-019",
    "requirements": [
      "LDES10-UNORD-019",
      "LDES10-UNORD-036",
      "LDES10-UNORD-046"
    ],
    "requirementLevel": "Must",
    "group": "UnorderedTraversal",
    "requiredCapabilities": []
  },
  "outcome": "failed",
  "events": [
    {
      "protocolVersion": 0,
      "type": "context",
      "runId": "run-1",
      "eventStream": "https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#rebalanced-stream",
      "dataset": "",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:50.000Z"
    },
    {
      "protocolVersion": 0,
      "type": "member",
      "runId": "run-1",
      "id": "https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#member/old",
      "dataset": "<https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#member/old> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#vocab/Event> .\n<https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#member/old> <https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#vocab/value> \"old\"^^<http://www.w3.org/2001/XMLSchema#string> .\n",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:50.020Z"
    },
    {
      "protocolVersion": 0,
      "type": "statistics",
      "runId": "run-1",
      "membersEmitted": 1,
      "fragmentsFetched": 3,
      "lastRun": "2026-10-16T10:19:50.020Z",
      "receivedAt": "2026-10-16T10:19:50.020Z"
    },
    {
      "protocolVersion": 0,
      "type": "run-end",
      "runId": "run-1",
      "status": "completed",
      "receivedAt": "2026-10-16T10:19:50.020Z",
      "adapterStderr": "2026-10-16T10:19:50.021Z {ldes-client} [Client] \u001b[32minfo\u001b[39m: Client has been gracefully closed\n"
    },
    {
      "protocolVersion": 0,
      "type": "context",
      "runId": "run-2",
      "eventStream": "https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#rebalanced-stream",
      "dataset": "",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:50.479Z"
    },
    {
      "protocolVersion": 0,
      "type": "member",
      "runId": "run-2",
      "id": "https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#member/new",
      "dataset": "<https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#member/new> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#vocab/Event> .\n<https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#member/new> <https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#vocab/value> \"new\"^^<http://www.w3.org/2001/XMLSchema#string> .\n",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:50.503Z"
    },
    {
      "protocolVersion": 0,
      "type": "statistics",
      "runId": "run-2",
      "membersEmitted": 1,
      "fragmentsFetched": 3,
      "lastRun": "2026-10-16T10:19:50.504Z",
      "receivedAt": "2026-10-16T10:19:50.504Z"
    },
    {
      "protocolVersion": 0,
      "type": "run-end",
      "runId": "run-2",
      "status": "completed",
      "receivedAt": "2026-10-16T10:19:50.504Z",
      "adapterStderr": "2026-10-16T10:19:50.504Z {ldes-client} [Client] \u001b[32minfo\u001b[39m: Client has been gracefully closed\n"
    },
    {
      "protocolVersion": 0,
      "type": "context",
      "runId": "run-3",
      "eventStream": "https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/rebalancing/responses/root.ttl#rebalanced-stream",
      "dataset": "",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:50.965Z"
    },
    {
      "protocolVersion": 0,
      "type": "error",
      "runId": "run-3",
      "kind": "client",
      "message": "Could not retrieve http://127.0.0.1:38445/2022 (HTTP status 410):\n",
      "receivedAt": "2026-10-16T10:19:50.982Z",
      "adapterStderr": "2026-10-16T10:19:50.981Z {ldes-client} [Fetcher] \u001b[31merror\u001b[39m: [fetch] Fetch failed for http://127.0.0.1:38445/2022 {}\n2026-10-16T10:19:50.981Z {ldes-client} [UnorderedStrategy] \u001b[31merror\u001b[39m: [fetchNotifier] Error: {}\n2026-10-16T10:19:50.982Z {ldes-client} [Client] \u001b[32minfo\u001b[39m: Client has been gracefully closed\n"
    }
  ],
  "requests": [
    {
      "sequence": 1,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "initial",
      "status": 200,
      "timestamp": "2026-10-16T10:19:49.978Z",
      "completedAt": "2026-10-16T10:19:49.979Z"
    },
    {
      "sequence": 2,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "initial",
      "status": 200,
      "timestamp": "2026-10-16T10:19:49.998Z",
      "completedAt": "2026-10-16T10:19:49.998Z"
    },
    {
      "sequence": 3,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "initial",
      "status": 200,
      "timestamp": "2026-10-16T10:19:50.009Z",
      "completedAt": "2026-10-16T10:19:50.010Z"
    },
    {
      "sequence": 4,
      "method": "GET",
      "path": "/2022",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "initial",
      "status": 200,
      "timestamp": "2026-10-16T10:19:50.015Z",
      "completedAt": "2026-10-16T10:19:50.016Z"
    },
    {
      "sequence": 5,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "rebalanced",
      "status": 200,
      "timestamp": "2026-10-16T10:19:50.457Z",
      "completedAt": "2026-10-16T10:19:50.457Z"
    },
    {
      "sequence": 6,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "rebalanced",
      "status": 200,
      "timestamp": "2026-10-16T10:19:50.475Z",
      "completedAt": "2026-10-16T10:19:50.476Z"
    },
    {
      "sequence": 7,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "rebalanced",
      "status": 200,
      "timestamp": "2026-10-16T10:19:50.491Z",
      "completedAt": "2026-10-16T10:19:50.491Z"
    },
    {
      "sequence": 8,
      "method": "GET",
      "path": "/2022",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "rebalanced",
      "status": 302,
      "timestamp": "2026-10-16T10:19:50.497Z",
      "completedAt": "2026-10-16T10:19:50.497Z"
    },
    {
      "sequence": 9,
      "method": "GET",
      "path": "/2022-rebalanced",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "rebalanced",
      "status": 200,
      "timestamp": "2026-10-16T10:19:50.498Z",
      "completedAt": "2026-10-16T10:19:50.498Z"
    },
    {
      "sequence": 10,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "gone",
      "status": 200,
      "timestamp": "2026-10-16T10:19:50.943Z",
      "completedAt": "2026-10-16T10:19:50.943Z"
    },
    {
      "sequence": 11,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "gone",
      "status": 200,
      "timestamp": "2026-10-16T10:19:50.962Z",
      "completedAt": "2026-10-16T10:19:50.962Z"
    },
    {
      "sequence": 12,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "gone",
      "status": 200,
      "timestamp": "2026-10-16T10:19:50.974Z",
      "completedAt": "2026-10-16T10:19:50.974Z"
    },
    {
      "sequence": 13,
      "method": "GET",
      "path": "/2022",
      "headers": {
        "host": "127.0.0.1:38445",
        "connection": "keep-alive",
        "accept": "application/n-quads,application/trig;q=0.95,application/ld+json;q=0.9,application/n-triples;q=0.8,text/turtle;q=0.6,application/rdf+xml;q=0.5,text/n3;q=0.35,application/xml;q=0.3,image/svg+xml;q=0.3,text/xml;q=0.3,text/html;q=0.2,application/xhtml+xml;q=0.18,application/json;q=0.135,text/shaclc;q=0.1,text/shaclc-ext;q=0.05",
        "user-agent": "Comunica/5.0 (linux; x64) ActorHttpFetch/5.3.0 Node.js/22",
        "accept-encoding": "br,gzip,deflate",
        "accept-language": "*",
        "sec-fetch-mode": "cors"
      },
      "phase": "gone",
      "status": 410,
      "timestamp": "2026-10-16T10:19:50.980Z",
      "completedAt": "2026-10-16T10:19:50.980Z"
    }
  ],
  "diagnostics": [
    "event 4: expected type run-end, got error"
  ]
}
