{
  "test": {
    "id": "tests/1.0/unordered/cache-state",
    "directory": "tests/1.0/unordered/cache-state",
    "manifestPath": "tests/1.0/unordered/cache-state/manifest.ttl",
    "scenarioPath": "tests/1.0/unordered/cache-state/scenario.yaml",
    "expectedPath": "tests/1.0/unordered/cache-state/expected/events.ndjson",
    "iri": "https://www.pieter.pm/ldes-client-conformance-test-suite/1.0#unordered-cache-state",
    "title": "Immutable nodes are skipped and mutable ETags are revalidated",
    "description": "Across repeated synchronization runs, RDF-immutable and Cache-Control immutable nodes must not be refetched, while the mutable node must be revalidated with its ETag.",
    "requirement": "LDES10-UNORD-020",
    "requirements": [
      "LDES10-UNORD-020",
      "LDES10-UNORD-021",
      "LDES10-UNORD-022",
      "LDES10-UNORD-023",
      "LDES10-UNORD-027",
      "LDES10-UNORD-035",
      "LDES10-UNORD-037"
    ],
    "requirementLevel": "Should",
    "group": "UnorderedTraversal",
    "requiredCapabilities": []
  },
  "outcome": "failed",
  "events": [
    {
      "protocolVersion": 0,
      "type": "context",
      "runId": "initial",
      "eventStream": "https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#cache-stream",
      "dataset": "",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:33.999Z"
    },
    {
      "protocolVersion": 0,
      "type": "member",
      "runId": "initial",
      "id": "https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#member/mutable",
      "dataset": "<https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#member/mutable> <https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#vocab/value> \"mutable\"^^<http://www.w3.org/2001/XMLSchema#string> .\n",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:34.022Z"
    },
    {
      "protocolVersion": 0,
      "type": "member",
      "runId": "initial",
      "id": "https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#member/header-immutable",
      "dataset": "<https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#member/header-immutable> <https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#vocab/value> \"header immutable\"^^<http://www.w3.org/2001/XMLSchema#string> .\n",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:34.027Z"
    },
    {
      "protocolVersion": 0,
      "type": "member",
      "runId": "initial",
      "id": "https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#member/rdf-immutable",
      "dataset": "<https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#member/rdf-immutable> <https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#vocab/value> \"rdf immutable\"^^<http://www.w3.org/2001/XMLSchema#string> .\n",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:34.032Z"
    },
    {
      "protocolVersion": 0,
      "type": "statistics",
      "runId": "initial",
      "membersEmitted": 3,
      "fragmentsFetched": 5,
      "lastRun": "2026-10-16T10:19:34.032Z",
      "receivedAt": "2026-10-16T10:19:34.033Z"
    },
    {
      "protocolVersion": 0,
      "type": "run-end",
      "runId": "initial",
      "status": "completed",
      "receivedAt": "2026-10-16T10:19:34.033Z",
      "adapterStderr": "2026-10-16T10:19:34.033Z {ldes-client} [Client] \u001b[32minfo\u001b[39m: Client has been gracefully closed\n"
    },
    {
      "protocolVersion": 0,
      "type": "context",
      "runId": "repeat",
      "eventStream": "https://raw.githubusercontent.com/pietercolpaert/ldes-client-conformance-test-suite/main/tests/1.0/unordered/cache-state/responses/root.ttl#cache-stream",
      "dataset": "",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:34.488Z"
    },
    {
      "protocolVersion": 0,
      "type": "error",
      "runId": "repeat",
      "kind": "client",
      "message": "Could not retrieve http://127.0.0.1:44145/mutable (HTTP status 304):\nempty response",
      "receivedAt": "2026-10-16T10:19:34.505Z",
      "adapterStderr": "2026-10-16T10:19:34.504Z {ldes-client} [Fetcher] \u001b[31merror\u001b[39m: [fetch] Fetch failed for http://127.0.0.1:44145/mutable {}\n2026-10-16T10:19:34.504Z {ldes-client} [UnorderedStrategy] \u001b[31merror\u001b[39m: [fetchNotifier] Error: {}\n2026-10-16T10:19:34.505Z {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:44145",
        "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:33.976Z",
      "completedAt": "2026-10-16T10:19:33.976Z"
    },
    {
      "sequence": 2,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:44145",
        "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:33.995Z",
      "completedAt": "2026-10-16T10:19:33.996Z"
    },
    {
      "sequence": 3,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:44145",
        "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:34.010Z",
      "completedAt": "2026-10-16T10:19:34.011Z"
    },
    {
      "sequence": 4,
      "method": "GET",
      "path": "/mutable",
      "headers": {
        "host": "127.0.0.1:44145",
        "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:34.017Z",
      "completedAt": "2026-10-16T10:19:34.017Z"
    },
    {
      "sequence": 5,
      "method": "GET",
      "path": "/header-immutable",
      "headers": {
        "host": "127.0.0.1:44145",
        "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:34.024Z",
      "completedAt": "2026-10-16T10:19:34.024Z"
    },
    {
      "sequence": 6,
      "method": "GET",
      "path": "/rdf-immutable",
      "headers": {
        "host": "127.0.0.1:44145",
        "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:34.029Z",
      "completedAt": "2026-10-16T10:19:34.029Z"
    },
    {
      "sequence": 7,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:44145",
        "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": "repeat",
      "status": 200,
      "timestamp": "2026-10-16T10:19:34.466Z",
      "completedAt": "2026-10-16T10:19:34.466Z"
    },
    {
      "sequence": 8,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:44145",
        "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": "repeat",
      "status": 200,
      "timestamp": "2026-10-16T10:19:34.485Z",
      "completedAt": "2026-10-16T10:19:34.485Z"
    },
    {
      "sequence": 9,
      "method": "GET",
      "path": "/root",
      "headers": {
        "host": "127.0.0.1:44145",
        "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": "repeat",
      "status": 200,
      "timestamp": "2026-10-16T10:19:34.497Z",
      "completedAt": "2026-10-16T10:19:34.497Z"
    },
    {
      "sequence": 10,
      "method": "GET",
      "path": "/mutable",
      "headers": {
        "host": "127.0.0.1:44145",
        "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": "repeat",
      "status": 304,
      "timestamp": "2026-10-16T10:19:34.503Z",
      "completedAt": "2026-10-16T10:19:34.503Z"
    }
  ],
  "diagnostics": [
    "event 4: expected type run-end, got error",
    "request repeat:/mutable: expected if-none-match: \"mutable-v1\", got <absent>"
  ]
}
