{
  "test": {
    "id": "tests/1.0/ordered/common-retry-408",
    "directory": "tests/1.0/ordered/common-retry-408",
    "manifestPath": "tests/1.0/ordered/common-retry-408/manifest.ttl",
    "scenarioPath": "tests/1.0/ordered/common-retry-408/scenario.yaml",
    "expectedPath": "tests/1.0/ordered/common-retry-408/expected/events.ndjson",
    "iri": "https://www.pieter.pm/ldes-client-conformance-test-suite/1.0#ordered-common-retry-408",
    "title": "408 Request Timeout is retried with back-off in ordered mode",
    "description": "The root node returns 408 Request Timeout twice before a valid representation. The client must retry rather than treat the status as terminal data loss, and every member must still be emitted. The request timeline asserts only that consecutive attempts are spaced, so any back-off strategy, retry count or jitter satisfies it. Exercised in ordered mode so a client that declares only ordered traversal can demonstrate this shared HTTP obligation.",
    "requirement": "LDES10-UNORD-038",
    "requirements": [
      "LDES10-UNORD-038"
    ],
    "requirementLevel": "Must",
    "group": "OrderedTraversal",
    "requiredCapabilities": []
  },
  "outcome": "passed",
  "events": [
    {
      "protocolVersion": 0,
      "type": "context",
      "runId": "run-1",
      "eventStream": "https://example.test/stream",
      "rootNode": "http://127.0.0.1:46053/root",
      "dataset": "<https://example.test/stream> <https://w3id.org/tree#view> <http://127.0.0.1:46053/root> .\n<https://example.test/stream> <https://w3id.org/ldes#sequencePath> <https://example.test/value> .\n<https://example.test/stream> <https://w3id.org/tree#member> <https://example.test/m> .\n<https://example.test/m> <https://example.test/value> \"after retries\" .\n",
      "mediaType": "application/n-quads",
      "emptyRetentionPolicies": [],
      "sequencePath": "https://example.test/value",
      "receivedAt": "2026-10-16T10:19:44.893Z"
    },
    {
      "protocolVersion": 0,
      "type": "member",
      "runId": "run-1",
      "id": "https://example.test/m",
      "dataset": "<https://example.test/m> <https://example.test/value> \"after retries\" .\n",
      "mediaType": "application/n-quads",
      "receivedAt": "2026-10-16T10:19:44.897Z"
    },
    {
      "protocolVersion": 0,
      "type": "statistics",
      "runId": "run-1",
      "membersEmitted": 1,
      "lastRun": "2026-10-16T10:19:44.897922925Z",
      "receivedAt": "2026-10-16T10:19:44.899Z"
    },
    {
      "protocolVersion": 0,
      "type": "run-end",
      "runId": "run-1",
      "status": "completed",
      "receivedAt": "2026-10-16T10:19:44.899Z",
      "adapterStderr": "Europeana crawl started: http://127.0.0.1:46053/root\nSLF4J: Failed to load class \"org.slf4j.impl.StaticLoggerBinder\".\nSLF4J: Defaulting to no-operation (NOP) logger implementation\nSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.\n"
    }
  ],
  "requests": [
    {
      "sequence": 1,
      "method": "GET",
      "path": "/root",
      "headers": {
        "accept": "application/ld+json, application/trig, application/n-quads, application/n-triples, text/turtle",
        "host": "127.0.0.1:46053",
        "connection": "Keep-Alive",
        "user-agent": "Apache-HttpClient/4.5.14 (Java/21.0.12.1)",
        "accept-encoding": "gzip,deflate"
      },
      "phase": "default",
      "status": 408,
      "timestamp": "2026-10-16T10:19:44.623Z",
      "completedAt": "2026-10-16T10:19:44.623Z"
    },
    {
      "sequence": 2,
      "method": "GET",
      "path": "/root",
      "headers": {
        "accept": "application/ld+json, application/trig, application/n-quads, application/n-triples, text/turtle",
        "host": "127.0.0.1:46053",
        "connection": "Keep-Alive",
        "user-agent": "Apache-HttpClient/4.5.14 (Java/21.0.12.1)",
        "accept-encoding": "gzip,deflate"
      },
      "phase": "default",
      "status": 408,
      "timestamp": "2026-10-16T10:19:44.649Z",
      "completedAt": "2026-10-16T10:19:44.650Z"
    },
    {
      "sequence": 3,
      "method": "GET",
      "path": "/root",
      "headers": {
        "accept": "application/ld+json, application/trig, application/n-quads, application/n-triples, text/turtle",
        "host": "127.0.0.1:46053",
        "connection": "Keep-Alive",
        "user-agent": "Apache-HttpClient/4.5.14 (Java/21.0.12.1)",
        "accept-encoding": "gzip,deflate"
      },
      "phase": "default",
      "status": 200,
      "timestamp": "2026-10-16T10:19:44.670Z",
      "completedAt": "2026-10-16T10:19:44.671Z"
    }
  ],
  "diagnostics": []
}
