{
  "key": "android-ech#190+containers#205+network#83",
  "collectedFrom": [
    {
      "workflow": "android-ech",
      "runNumber": 190,
      "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31954315953",
      "commit": "a510ccb47145d6d0f8026cd16ef12719950e4ce4",
      "event": "schedule",
      "finishedAt": "2026-08-16T15:03:32Z",
      "jobStatus": "success",
      "suiteCount": 2
    },
    {
      "workflow": "containers",
      "runNumber": 205,
      "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
      "commit": "a510ccb47145d6d0f8026cd16ef12719950e4ce4",
      "event": "schedule",
      "finishedAt": "2026-08-17T03:15:06Z",
      "jobStatus": "success",
      "suiteCount": 15
    },
    {
      "workflow": "network",
      "runNumber": 83,
      "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
      "commit": "a510ccb47145d6d0f8026cd16ef12719950e4ce4",
      "event": "workflow_dispatch",
      "finishedAt": "2026-08-16T17:22:30Z",
      "jobStatus": "success",
      "suiteCount": 19
    }
  ],
  "finishedAt": "2026-08-17T03:15:06Z",
  "status": "finding",
  "versions": [
    {
      "okhttpVersion": "5.4.0",
      "label": "pinned",
      "platforms": [
        "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
        "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
        "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
        "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
        "Temurin JDK 1.8.0_502 \u00b7 amd64"
      ],
      "workflows": [
        "containers"
      ],
      "suites": [
        {
          "name": "BadChainTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.BadChainTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 38.35,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 8420",
              "rawName": "[1] 8420",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.038,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 8421",
              "rawName": "[2] 8421",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.039,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 8422",
              "rawName": "[3] 8422",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.028,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] 8423",
              "rawName": "[4] 8423",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.018,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] 8424",
              "rawName": "[5] 8424",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.017,
              "message": "",
              "detail": ""
            },
            {
              "name": "goodChainIsAccepted",
              "rawName": "goodChainIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.443,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BadChainTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.BadChainTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 34.533,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 8420",
              "rawName": "[1] 8420",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.028,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 8421",
              "rawName": "[2] 8421",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.029,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 8422",
              "rawName": "[3] 8422",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] 8423",
              "rawName": "[4] 8423",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] 8424",
              "rawName": "[5] 8424",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.013,
              "message": "",
              "detail": ""
            },
            {
              "name": "goodChainIsAccepted",
              "rawName": "goodChainIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.106,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BadChainTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.BadChainTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 34.646,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 8420",
              "rawName": "[1] 8420",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.035,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 8421",
              "rawName": "[2] 8421",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.036,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 8422",
              "rawName": "[3] 8422",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.025,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] 8423",
              "rawName": "[4] 8423",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.015,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] 8424",
              "rawName": "[5] 8424",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.016,
              "message": "",
              "detail": ""
            },
            {
              "name": "goodChainIsAccepted",
              "rawName": "goodChainIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.224,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BadChainTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.BadChainTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 39.138,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 8420",
              "rawName": "[1] 8420",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.044,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 8421",
              "rawName": "[2] 8421",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.034,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 8422",
              "rawName": "[3] 8422",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.024,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] 8423",
              "rawName": "[4] 8423",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] 8424",
              "rawName": "[5] 8424",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "goodChainIsAccepted",
              "rawName": "goodChainIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.461,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BadChainTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.BadChainTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 42.228,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 8420",
              "rawName": "[1] 8420",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.045,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 8421",
              "rawName": "[2] 8421",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.043,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 8422",
              "rawName": "[3] 8422",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.024,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] 8423",
              "rawName": "[4] 8423",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.022,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] 8424",
              "rawName": "[5] 8424",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.026,
              "message": "",
              "detail": ""
            },
            {
              "name": "goodChainIsAccepted",
              "rawName": "goodChainIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.347,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicMockServerTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.BasicMockServerTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 12.209,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testHttpsRequest",
              "rawName": "testHttpsRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 9.516,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRequest",
              "rawName": "testRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 1.887,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicMockServerTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.BasicMockServerTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 9.199,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testHttpsRequest",
              "rawName": "testHttpsRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 6.323,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRequest",
              "rawName": "testRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 1.959,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicMockServerTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.BasicMockServerTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 11.679,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testHttpsRequest",
              "rawName": "testHttpsRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 8.855,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRequest",
              "rawName": "testRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 2.034,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicProxyTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.BasicProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 16.457,
          "passed": 8,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testOkHttpDirect",
              "rawName": "testOkHttpDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.723,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpProxied",
              "rawName": "testOkHttpProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.801,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureDirect",
              "rawName": "testOkHttpSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.251,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureProxiedHttp1",
              "rawName": "testOkHttpSecureProxiedHttp1()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.435,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionDirect",
              "rawName": "testUrlConnectionDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.77,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionPlaintextProxied",
              "rawName": "testUrlConnectionPlaintextProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.806,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureDirect",
              "rawName": "testUrlConnectionSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.517,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureProxied",
              "rawName": "testUrlConnectionSecureProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.151,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicProxyTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.BasicProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 18.405,
          "passed": 8,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testOkHttpDirect",
              "rawName": "testOkHttpDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.932,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpProxied",
              "rawName": "testOkHttpProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.973,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureDirect",
              "rawName": "testOkHttpSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.593,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureProxiedHttp1",
              "rawName": "testOkHttpSecureProxiedHttp1()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.804,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionDirect",
              "rawName": "testUrlConnectionDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.936,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionPlaintextProxied",
              "rawName": "testUrlConnectionPlaintextProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.956,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureDirect",
              "rawName": "testUrlConnectionSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.598,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureProxied",
              "rawName": "testUrlConnectionSecureProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.609,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicProxyTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.BasicProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 19.433,
          "passed": 8,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testOkHttpDirect",
              "rawName": "testOkHttpDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.031,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpProxied",
              "rawName": "testOkHttpProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.078,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureDirect",
              "rawName": "testOkHttpSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.952,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureProxiedHttp1",
              "rawName": "testOkHttpSecureProxiedHttp1()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.642,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionDirect",
              "rawName": "testUrlConnectionDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.036,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionPlaintextProxied",
              "rawName": "testUrlConnectionPlaintextProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.013,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureDirect",
              "rawName": "testUrlConnectionSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 3.008,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureProxied",
              "rawName": "testUrlConnectionSecureProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.669,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientCertificateTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.ClientCertificateTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.823,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aCertificateFromAnUnacceptedIssuerIsNotSent",
              "rawName": "aCertificateFromAnUnacceptedIssuerIsNotSent()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.155,
              "message": "",
              "detail": ""
            },
            {
              "name": "aClientCertificateIsPresentedAndAccepted",
              "rawName": "aClientCertificateIsPresentedAndAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.047,
              "message": "",
              "detail": ""
            },
            {
              "name": "omittingTheCertificateFailsDistinguishably",
              "rawName": "omittingTheCertificateFailsDistinguishably()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.102,
              "message": "",
              "detail": ""
            },
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.096,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientCertificateTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.ClientCertificateTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.695,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aCertificateFromAnUnacceptedIssuerIsNotSent",
              "rawName": "aCertificateFromAnUnacceptedIssuerIsNotSent()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.129,
              "message": "",
              "detail": ""
            },
            {
              "name": "aClientCertificateIsPresentedAndAccepted",
              "rawName": "aClientCertificateIsPresentedAndAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.046,
              "message": "",
              "detail": ""
            },
            {
              "name": "omittingTheCertificateFailsDistinguishably",
              "rawName": "omittingTheCertificateFailsDistinguishably()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.095,
              "message": "",
              "detail": ""
            },
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.094,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientCertificateTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.ClientCertificateTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.82,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aCertificateFromAnUnacceptedIssuerIsNotSent",
              "rawName": "aCertificateFromAnUnacceptedIssuerIsNotSent()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.124,
              "message": "",
              "detail": ""
            },
            {
              "name": "aClientCertificateIsPresentedAndAccepted",
              "rawName": "aClientCertificateIsPresentedAndAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.049,
              "message": "",
              "detail": ""
            },
            {
              "name": "omittingTheCertificateFailsDistinguishably",
              "rawName": "omittingTheCertificateFailsDistinguishably()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.101,
              "message": "",
              "detail": ""
            },
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.097,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientCertificateTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.ClientCertificateTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.806,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aCertificateFromAnUnacceptedIssuerIsNotSent",
              "rawName": "aCertificateFromAnUnacceptedIssuerIsNotSent()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.123,
              "message": "",
              "detail": ""
            },
            {
              "name": "aClientCertificateIsPresentedAndAccepted",
              "rawName": "aClientCertificateIsPresentedAndAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.048,
              "message": "",
              "detail": ""
            },
            {
              "name": "omittingTheCertificateFailsDistinguishably",
              "rawName": "omittingTheCertificateFailsDistinguishably()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.092,
              "message": "",
              "detail": ""
            },
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.098,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientCertificateTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.ClientCertificateTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.755,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aCertificateFromAnUnacceptedIssuerIsNotSent",
              "rawName": "aCertificateFromAnUnacceptedIssuerIsNotSent()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.123,
              "message": "",
              "detail": ""
            },
            {
              "name": "aClientCertificateIsPresentedAndAccepted",
              "rawName": "aClientCertificateIsPresentedAndAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.048,
              "message": "",
              "detail": ""
            },
            {
              "name": "omittingTheCertificateFailsDistinguishably",
              "rawName": "omittingTheCertificateFailsDistinguishably()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.094,
              "message": "",
              "detail": ""
            },
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.097,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloExtensionsTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.473,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theEchFlagAgreesWithTheExtensionList",
              "rawName": "theEchFlagAgreesWithTheExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.05,
              "message": "",
              "detail": ""
            },
            {
              "name": "theOfferCarriesItsExtensionList",
              "rawName": "theOfferCarriesItsExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.039,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloExtensionsTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.398,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theEchFlagAgreesWithTheExtensionList",
              "rawName": "theEchFlagAgreesWithTheExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.048,
              "message": "",
              "detail": ""
            },
            {
              "name": "theOfferCarriesItsExtensionList",
              "rawName": "theOfferCarriesItsExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.041,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloExtensionsTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.414,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theEchFlagAgreesWithTheExtensionList",
              "rawName": "theEchFlagAgreesWithTheExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.048,
              "message": "",
              "detail": ""
            },
            {
              "name": "theOfferCarriesItsExtensionList",
              "rawName": "theOfferCarriesItsExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloExtensionsTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.454,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theEchFlagAgreesWithTheExtensionList",
              "rawName": "theEchFlagAgreesWithTheExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.049,
              "message": "",
              "detail": ""
            },
            {
              "name": "theOfferCarriesItsExtensionList",
              "rawName": "theOfferCarriesItsExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.041,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloExtensionsTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.452,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theEchFlagAgreesWithTheExtensionList",
              "rawName": "theEchFlagAgreesWithTheExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.05,
              "message": "",
              "detail": ""
            },
            {
              "name": "theOfferCarriesItsExtensionList",
              "rawName": "theOfferCarriesItsExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.041,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ConnectionSpecTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.ConnectionSpecTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.686,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "anEmptyIntersectionFailsWithSomethingToRead",
              "rawName": "anEmptyIntersectionFailsWithSomethingToRead()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "modernTlsReachesBothCurrentVersions",
              "rawName": "modernTlsReachesBothCurrentVersions()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.103,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls12",
              "rawName": "restrictedTlsConnectsToTls12()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.051,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls13",
              "rawName": "restrictedTlsConnectsToTls13()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.047,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls10",
              "rawName": "restrictedTlsRefusesTls10()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls11",
              "rawName": "restrictedTlsRefusesTls11()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ConnectionSpecTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.ConnectionSpecTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.598,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "anEmptyIntersectionFailsWithSomethingToRead",
              "rawName": "anEmptyIntersectionFailsWithSomethingToRead()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "modernTlsReachesBothCurrentVersions",
              "rawName": "modernTlsReachesBothCurrentVersions()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.093,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls12",
              "rawName": "restrictedTlsConnectsToTls12()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.047,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls13",
              "rawName": "restrictedTlsConnectsToTls13()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.046,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls10",
              "rawName": "restrictedTlsRefusesTls10()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls11",
              "rawName": "restrictedTlsRefusesTls11()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ConnectionSpecTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.ConnectionSpecTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.687,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "anEmptyIntersectionFailsWithSomethingToRead",
              "rawName": "anEmptyIntersectionFailsWithSomethingToRead()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "modernTlsReachesBothCurrentVersions",
              "rawName": "modernTlsReachesBothCurrentVersions()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.095,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls12",
              "rawName": "restrictedTlsConnectsToTls12()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.048,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls13",
              "rawName": "restrictedTlsConnectsToTls13()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.047,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls10",
              "rawName": "restrictedTlsRefusesTls10()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls11",
              "rawName": "restrictedTlsRefusesTls11()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ConnectionSpecTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.ConnectionSpecTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.707,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "anEmptyIntersectionFailsWithSomethingToRead",
              "rawName": "anEmptyIntersectionFailsWithSomethingToRead()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "modernTlsReachesBothCurrentVersions",
              "rawName": "modernTlsReachesBothCurrentVersions()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.094,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls12",
              "rawName": "restrictedTlsConnectsToTls12()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.047,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls13",
              "rawName": "restrictedTlsConnectsToTls13()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.046,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls10",
              "rawName": "restrictedTlsRefusesTls10()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls11",
              "rawName": "restrictedTlsRefusesTls11()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ConnectionSpecTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.ConnectionSpecTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.693,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "anEmptyIntersectionFailsWithSomethingToRead",
              "rawName": "anEmptyIntersectionFailsWithSomethingToRead()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "modernTlsReachesBothCurrentVersions",
              "rawName": "modernTlsReachesBothCurrentVersions()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.101,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls12",
              "rawName": "restrictedTlsConnectsToTls12()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.049,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls13",
              "rawName": "restrictedTlsConnectsToTls13()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.047,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls10",
              "rawName": "restrictedTlsRefusesTls10()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls11",
              "rawName": "restrictedTlsRefusesTls11()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "FixturePinningTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.FixturePinningTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.565,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aPinForADifferentCertificateIsRefused",
              "rawName": "aPinForADifferentCertificateIsRefused()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.026,
              "message": "",
              "detail": ""
            },
            {
              "name": "chainWithoutSctsBehaviourIsRecorded",
              "rawName": "chainWithoutSctsBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.065,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRightPinIsAccepted",
              "rawName": "theRightPinIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.095,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "FixturePinningTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.FixturePinningTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.531,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aPinForADifferentCertificateIsRefused",
              "rawName": "aPinForADifferentCertificateIsRefused()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.018,
              "message": "",
              "detail": ""
            },
            {
              "name": "chainWithoutSctsBehaviourIsRecorded",
              "rawName": "chainWithoutSctsBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.051,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRightPinIsAccepted",
              "rawName": "theRightPinIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.094,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "FixturePinningTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.FixturePinningTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.539,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aPinForADifferentCertificateIsRefused",
              "rawName": "aPinForADifferentCertificateIsRefused()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.022,
              "message": "",
              "detail": ""
            },
            {
              "name": "chainWithoutSctsBehaviourIsRecorded",
              "rawName": "chainWithoutSctsBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.054,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRightPinIsAccepted",
              "rawName": "theRightPinIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.093,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "FixturePinningTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.FixturePinningTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.52,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aPinForADifferentCertificateIsRefused",
              "rawName": "aPinForADifferentCertificateIsRefused()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.023,
              "message": "",
              "detail": ""
            },
            {
              "name": "chainWithoutSctsBehaviourIsRecorded",
              "rawName": "chainWithoutSctsBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.05,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRightPinIsAccepted",
              "rawName": "theRightPinIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.092,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "FixturePinningTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.FixturePinningTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.573,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aPinForADifferentCertificateIsRefused",
              "rawName": "aPinForADifferentCertificateIsRefused()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.041,
              "message": "",
              "detail": ""
            },
            {
              "name": "chainWithoutSctsBehaviourIsRecorded",
              "rawName": "chainWithoutSctsBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.055,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRightPinIsAccepted",
              "rawName": "theRightPinIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.096,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "GoHttpbinTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.GoHttpbinTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.383,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testGzipIsDecompressedTransparently",
              "rawName": "testGzipIsDecompressedTransparently()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.294,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRedirectsAreFollowed",
              "rawName": "testRedirectsAreFollowed()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.289,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStatusCode",
              "rawName": "testStatusCode()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.31,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStreamedResponseIsChunked",
              "rawName": "testStreamedResponseIsChunked()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.286,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUnauthenticatedRequestIsChallenged",
              "rawName": "testUnauthenticatedRequestIsChallenged()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 2.195,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "GoHttpbinTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.GoHttpbinTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.024,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testGzipIsDecompressedTransparently",
              "rawName": "testGzipIsDecompressedTransparently()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.256,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRedirectsAreFollowed",
              "rawName": "testRedirectsAreFollowed()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.247,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStatusCode",
              "rawName": "testStatusCode()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.264,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStreamedResponseIsChunked",
              "rawName": "testStreamedResponseIsChunked()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.271,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUnauthenticatedRequestIsChallenged",
              "rawName": "testUnauthenticatedRequestIsChallenged()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 1.982,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "GoHttpbinTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.GoHttpbinTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 2.483,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testGzipIsDecompressedTransparently",
              "rawName": "testGzipIsDecompressedTransparently()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.284,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRedirectsAreFollowed",
              "rawName": "testRedirectsAreFollowed()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.278,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStatusCode",
              "rawName": "testStatusCode()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.284,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStreamedResponseIsChunked",
              "rawName": "testStreamedResponseIsChunked()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.296,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUnauthenticatedRequestIsChallenged",
              "rawName": "testUnauthenticatedRequestIsChallenged()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 1.336,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "GoHttpbinTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.GoHttpbinTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.161,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testGzipIsDecompressedTransparently",
              "rawName": "testGzipIsDecompressedTransparently()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.283,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRedirectsAreFollowed",
              "rawName": "testRedirectsAreFollowed()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.297,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStatusCode",
              "rawName": "testStatusCode()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.282,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStreamedResponseIsChunked",
              "rawName": "testStreamedResponseIsChunked()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.291,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUnauthenticatedRequestIsChallenged",
              "rawName": "testUnauthenticatedRequestIsChallenged()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 2.002,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "GoHttpbinTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.GoHttpbinTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.075,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testGzipIsDecompressedTransparently",
              "rawName": "testGzipIsDecompressedTransparently()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.305,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRedirectsAreFollowed",
              "rawName": "testRedirectsAreFollowed()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.308,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStatusCode",
              "rawName": "testStatusCode()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.333,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStreamedResponseIsChunked",
              "rawName": "testStreamedResponseIsChunked()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.319,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUnauthenticatedRequestIsChallenged",
              "rawName": "testUnauthenticatedRequestIsChallenged()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 1.803,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileResponseTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.HostileResponseTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 6.863,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /hostile/no-response",
              "rawName": "[1] /hostile/no-response",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.016,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /hostile/reset",
              "rawName": "[2] /hostile/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.97,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] /hostile/truncated-body",
              "rawName": "[3] /hostile/truncated-body",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.035,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] /hostile/truncated-chunks",
              "rawName": "[4] /hostile/truncated-chunks",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] /hostile/invalid-chunk-size",
              "rawName": "[5] /hostile/invalid-chunk-size",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.982,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] /hostile/invalid-status-line",
              "rawName": "[6] /hostile/invalid-status-line",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.049,
              "message": "",
              "detail": ""
            },
            {
              "name": "completeResponseBeforeHalfCloseIsAccepted",
              "rawName": "completeResponseBeforeHalfCloseIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.796,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileResponseTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.HostileResponseTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 6.709,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /hostile/no-response",
              "rawName": "[1] /hostile/no-response",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.987,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /hostile/reset",
              "rawName": "[2] /hostile/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.0,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] /hostile/truncated-body",
              "rawName": "[3] /hostile/truncated-body",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.012,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] /hostile/truncated-chunks",
              "rawName": "[4] /hostile/truncated-chunks",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.993,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] /hostile/invalid-chunk-size",
              "rawName": "[5] /hostile/invalid-chunk-size",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.034,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] /hostile/invalid-status-line",
              "rawName": "[6] /hostile/invalid-status-line",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.957,
              "message": "",
              "detail": ""
            },
            {
              "name": "completeResponseBeforeHalfCloseIsAccepted",
              "rawName": "completeResponseBeforeHalfCloseIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.717,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileResponseTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.HostileResponseTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 6.861,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /hostile/no-response",
              "rawName": "[1] /hostile/no-response",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.011,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /hostile/reset",
              "rawName": "[2] /hostile/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.041,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] /hostile/truncated-body",
              "rawName": "[3] /hostile/truncated-body",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.953,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] /hostile/truncated-chunks",
              "rawName": "[4] /hostile/truncated-chunks",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.013,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] /hostile/invalid-chunk-size",
              "rawName": "[5] /hostile/invalid-chunk-size",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.046,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] /hostile/invalid-status-line",
              "rawName": "[6] /hostile/invalid-status-line",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.978,
              "message": "",
              "detail": ""
            },
            {
              "name": "completeResponseBeforeHalfCloseIsAccepted",
              "rawName": "completeResponseBeforeHalfCloseIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.809,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileResponseTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.HostileResponseTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 6.782,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /hostile/no-response",
              "rawName": "[1] /hostile/no-response",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.977,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /hostile/reset",
              "rawName": "[2] /hostile/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.025,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] /hostile/truncated-body",
              "rawName": "[3] /hostile/truncated-body",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.028,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] /hostile/truncated-chunks",
              "rawName": "[4] /hostile/truncated-chunks",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.976,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] /hostile/invalid-chunk-size",
              "rawName": "[5] /hostile/invalid-chunk-size",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.998,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] /hostile/invalid-status-line",
              "rawName": "[6] /hostile/invalid-status-line",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.961,
              "message": "",
              "detail": ""
            },
            {
              "name": "completeResponseBeforeHalfCloseIsAccepted",
              "rawName": "completeResponseBeforeHalfCloseIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.804,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileResponseTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.HostileResponseTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 6.804,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /hostile/no-response",
              "rawName": "[1] /hostile/no-response",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.981,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /hostile/reset",
              "rawName": "[2] /hostile/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] /hostile/truncated-body",
              "rawName": "[3] /hostile/truncated-body",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.997,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] /hostile/truncated-chunks",
              "rawName": "[4] /hostile/truncated-chunks",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] /hostile/invalid-chunk-size",
              "rawName": "[5] /hostile/invalid-chunk-size",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.98,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] /hostile/invalid-status-line",
              "rawName": "[6] /hostile/invalid-status-line",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.015,
              "message": "",
              "detail": ""
            },
            {
              "name": "completeResponseBeforeHalfCloseIsAccepted",
              "rawName": "completeResponseBeforeHalfCloseIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.81,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2CoalescingTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.Http2CoalescingTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.64,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "twoNamesOnOneCertificateShareAConnection",
              "rawName": "twoNamesOnOneCertificateShareAConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.Http2CoalescingTest",
              "status": "passed",
              "timeSeconds": 0.127,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2CoalescingTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.Http2CoalescingTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.699,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "twoNamesOnOneCertificateShareAConnection",
              "rawName": "twoNamesOnOneCertificateShareAConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.Http2CoalescingTest",
              "status": "passed",
              "timeSeconds": 0.093,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2CoalescingTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.Http2CoalescingTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.615,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "twoNamesOnOneCertificateShareAConnection",
              "rawName": "twoNamesOnOneCertificateShareAConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.Http2CoalescingTest",
              "status": "passed",
              "timeSeconds": 0.096,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2CoalescingTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.Http2CoalescingTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.707,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "twoNamesOnOneCertificateShareAConnection",
              "rawName": "twoNamesOnOneCertificateShareAConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.Http2CoalescingTest",
              "status": "passed",
              "timeSeconds": 0.11,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2CoalescingTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.Http2CoalescingTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.741,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "twoNamesOnOneCertificateShareAConnection",
              "rawName": "twoNamesOnOneCertificateShareAConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.Http2CoalescingTest",
              "status": "passed",
              "timeSeconds": 0.143,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpSemanticsTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.HttpSemanticsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 2.595,
          "passed": 17,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 204",
              "rawName": "[1] 204",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 301",
              "rawName": "[1] 301",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 307",
              "rawName": "[1] 307",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 302",
              "rawName": "[2] 302",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 304",
              "rawName": "[2] 304",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 308",
              "rawName": "[2] 308",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 303",
              "rawName": "[3] 303",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "aCacheableResponseIsServedFromTheCache",
              "rawName": "aCacheableResponseIsServedFromTheCache()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.04,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLongRedirectChainIsAbandoned",
              "rawName": "aLongRedirectChainIsAbandoned()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "aMultipartBodyArrivesIntact",
              "rawName": "aMultipartBodyArrivesIntact()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorSuppliesCredentialsOnTheRetry",
              "rawName": "anAuthenticatorSuppliesCredentialsOnTheRetry()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorThatNeverGivesUpIsBounded",
              "rawName": "anAuthenticatorThatNeverGivesUpIsBounded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne",
              "rawName": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.009,
              "message": "",
              "detail": ""
            },
            {
              "name": "cookiesRoundTripThroughTheJar",
              "rawName": "cookiesRoundTripThroughTheJar()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.011,
              "message": "",
              "detail": ""
            },
            {
              "name": "gzipIsTransparentAndDeflateIsNot",
              "rawName": "gzipIsTransparentAndDeflateIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "readAndCallTimeoutsAreDistinguishable",
              "rawName": "readAndCallTimeoutsAreDistinguishable()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 2.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRequestHeadIsRecorded",
              "rawName": "theRequestHeadIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpSemanticsTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.HttpSemanticsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 2.594,
          "passed": 17,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 204",
              "rawName": "[1] 204",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 301",
              "rawName": "[1] 301",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 307",
              "rawName": "[1] 307",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 302",
              "rawName": "[2] 302",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 304",
              "rawName": "[2] 304",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 308",
              "rawName": "[2] 308",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 303",
              "rawName": "[3] 303",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "aCacheableResponseIsServedFromTheCache",
              "rawName": "aCacheableResponseIsServedFromTheCache()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.016,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLongRedirectChainIsAbandoned",
              "rawName": "aLongRedirectChainIsAbandoned()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.01,
              "message": "",
              "detail": ""
            },
            {
              "name": "aMultipartBodyArrivesIntact",
              "rawName": "aMultipartBodyArrivesIntact()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorSuppliesCredentialsOnTheRetry",
              "rawName": "anAuthenticatorSuppliesCredentialsOnTheRetry()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorThatNeverGivesUpIsBounded",
              "rawName": "anAuthenticatorThatNeverGivesUpIsBounded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.011,
              "message": "",
              "detail": ""
            },
            {
              "name": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne",
              "rawName": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "cookiesRoundTripThroughTheJar",
              "rawName": "cookiesRoundTripThroughTheJar()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "gzipIsTransparentAndDeflateIsNot",
              "rawName": "gzipIsTransparentAndDeflateIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "readAndCallTimeoutsAreDistinguishable",
              "rawName": "readAndCallTimeoutsAreDistinguishable()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 2.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRequestHeadIsRecorded",
              "rawName": "theRequestHeadIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpSemanticsTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.HttpSemanticsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 2.543,
          "passed": 17,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 204",
              "rawName": "[1] 204",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 301",
              "rawName": "[1] 301",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 307",
              "rawName": "[1] 307",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 302",
              "rawName": "[2] 302",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 304",
              "rawName": "[2] 304",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 308",
              "rawName": "[2] 308",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 303",
              "rawName": "[3] 303",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "aCacheableResponseIsServedFromTheCache",
              "rawName": "aCacheableResponseIsServedFromTheCache()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.025,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLongRedirectChainIsAbandoned",
              "rawName": "aLongRedirectChainIsAbandoned()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.012,
              "message": "",
              "detail": ""
            },
            {
              "name": "aMultipartBodyArrivesIntact",
              "rawName": "aMultipartBodyArrivesIntact()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorSuppliesCredentialsOnTheRetry",
              "rawName": "anAuthenticatorSuppliesCredentialsOnTheRetry()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorThatNeverGivesUpIsBounded",
              "rawName": "anAuthenticatorThatNeverGivesUpIsBounded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne",
              "rawName": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "cookiesRoundTripThroughTheJar",
              "rawName": "cookiesRoundTripThroughTheJar()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "gzipIsTransparentAndDeflateIsNot",
              "rawName": "gzipIsTransparentAndDeflateIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "readAndCallTimeoutsAreDistinguishable",
              "rawName": "readAndCallTimeoutsAreDistinguishable()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 2.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRequestHeadIsRecorded",
              "rawName": "theRequestHeadIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpSemanticsTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.HttpSemanticsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 2.558,
          "passed": 17,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 204",
              "rawName": "[1] 204",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 301",
              "rawName": "[1] 301",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 307",
              "rawName": "[1] 307",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 302",
              "rawName": "[2] 302",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 304",
              "rawName": "[2] 304",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 308",
              "rawName": "[2] 308",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 303",
              "rawName": "[3] 303",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "aCacheableResponseIsServedFromTheCache",
              "rawName": "aCacheableResponseIsServedFromTheCache()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.02,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLongRedirectChainIsAbandoned",
              "rawName": "aLongRedirectChainIsAbandoned()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.013,
              "message": "",
              "detail": ""
            },
            {
              "name": "aMultipartBodyArrivesIntact",
              "rawName": "aMultipartBodyArrivesIntact()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorSuppliesCredentialsOnTheRetry",
              "rawName": "anAuthenticatorSuppliesCredentialsOnTheRetry()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorThatNeverGivesUpIsBounded",
              "rawName": "anAuthenticatorThatNeverGivesUpIsBounded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.013,
              "message": "",
              "detail": ""
            },
            {
              "name": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne",
              "rawName": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "cookiesRoundTripThroughTheJar",
              "rawName": "cookiesRoundTripThroughTheJar()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "gzipIsTransparentAndDeflateIsNot",
              "rawName": "gzipIsTransparentAndDeflateIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "readAndCallTimeoutsAreDistinguishable",
              "rawName": "readAndCallTimeoutsAreDistinguishable()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 2.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRequestHeadIsRecorded",
              "rawName": "theRequestHeadIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpSemanticsTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.HttpSemanticsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 2.587,
          "passed": 17,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 204",
              "rawName": "[1] 204",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 301",
              "rawName": "[1] 301",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 307",
              "rawName": "[1] 307",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 302",
              "rawName": "[2] 302",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 304",
              "rawName": "[2] 304",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 308",
              "rawName": "[2] 308",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 303",
              "rawName": "[3] 303",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "aCacheableResponseIsServedFromTheCache",
              "rawName": "aCacheableResponseIsServedFromTheCache()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.022,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLongRedirectChainIsAbandoned",
              "rawName": "aLongRedirectChainIsAbandoned()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.016,
              "message": "",
              "detail": ""
            },
            {
              "name": "aMultipartBodyArrivesIntact",
              "rawName": "aMultipartBodyArrivesIntact()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorSuppliesCredentialsOnTheRetry",
              "rawName": "anAuthenticatorSuppliesCredentialsOnTheRetry()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorThatNeverGivesUpIsBounded",
              "rawName": "anAuthenticatorThatNeverGivesUpIsBounded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.018,
              "message": "",
              "detail": ""
            },
            {
              "name": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne",
              "rawName": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.011,
              "message": "",
              "detail": ""
            },
            {
              "name": "cookiesRoundTripThroughTheJar",
              "rawName": "cookiesRoundTripThroughTheJar()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "gzipIsTransparentAndDeflateIsNot",
              "rawName": "gzipIsTransparentAndDeflateIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "readAndCallTimeoutsAreDistinguishable",
              "rawName": "readAndCallTimeoutsAreDistinguishable()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 2.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRequestHeadIsRecorded",
              "rawName": "theRequestHeadIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SocksProxyTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.SocksProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.716,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testLocal",
              "rawName": "testLocal()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SocksProxyTest",
              "status": "passed",
              "timeSeconds": 3.715,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SocksProxyTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.SocksProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.183,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testLocal",
              "rawName": "testLocal()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SocksProxyTest",
              "status": "passed",
              "timeSeconds": 3.181,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SocksProxyTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.SocksProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 4.005,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testLocal",
              "rawName": "testLocal()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SocksProxyTest",
              "status": "passed",
              "timeSeconds": 4.003,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicLoomTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.BasicLoomTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "loomTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.363,
          "passed": 0,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "testHttpsRequest",
              "rawName": "testHttpsRequest()",
              "expectedReason": "Before JDK 24, Http2Connection.newStream holds intrinsic monitors across Http2Writer.flush's blocking write, which pins the virtual thread's carrier. JEP 491 removes this monitor-based pinning from JDK 24.",
              "className": "okhttp.testbed.containers.BasicLoomTest",
              "status": "expected",
              "timeSeconds": 5.315,
              "message": "org.opentest4j.AssertionFailedError: expected to be empty but was:<\"VirtualThread[#46]/runnable@ForkJoinPool-1-worker-1 reason:MONITOR\n    okhttp3.internal.http2.Http2Writer.flush(Http2Writer.kt:131) <== monitors:1\n    okhttp3.internal.http2.Http2Connection.newStream(Http2Connection.kt:270) <== monitors:2\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to be empty but was:<\"VirtualThread[#46]/runnable@ForkJoinPool-1-worker-1 reason:MONITOR\n    okhttp3.internal.http2.Http2Writer.flush(Http2Writer.kt:131) <== monitors:1\n    okhttp3.internal.http2.Http2Connection.newStream(Http2Connection.kt:270) <== monitors:2\n\">\n\tat okhttp.testbed.containers.BasicLoomTest.checkForPinning(BasicLoomTest.kt:83)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:580)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1596)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1596)"
            }
          ]
        },
        {
          "name": "BasicLoomTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.BasicLoomTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "loomTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.572,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testHttpsRequest",
              "rawName": "testHttpsRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicLoomTest",
              "status": "passed",
              "timeSeconds": 5.527,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileRetryTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.HostileRetryTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "hostileTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.531,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getIsNotRetriedAfterAMidResponseReset",
              "rawName": "getIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 3.329,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedAfterAMidResponseReset",
              "rawName": "postIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 1.042,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.914,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileRetryTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.HostileRetryTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "hostileTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 4.729,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getIsNotRetriedAfterAMidResponseReset",
              "rawName": "getIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 2.674,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedAfterAMidResponseReset",
              "rawName": "postIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.974,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.931,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileRetryTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.HostileRetryTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "hostileTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.644,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getIsNotRetriedAfterAMidResponseReset",
              "rawName": "getIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 3.531,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedAfterAMidResponseReset",
              "rawName": "postIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.998,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.92,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileRetryTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.HostileRetryTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "hostileTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.27,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getIsNotRetriedAfterAMidResponseReset",
              "rawName": "getIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 3.164,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedAfterAMidResponseReset",
              "rawName": "postIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 1.018,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.893,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileRetryTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.HostileRetryTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "hostileTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.872,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getIsNotRetriedAfterAMidResponseReset",
              "rawName": "getIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 3.749,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedAfterAMidResponseReset",
              "rawName": "postIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.996,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.902,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PostQuantumTest \u00b7 JDK 11",
          "className": "okhttp.testbed.containers.PostQuantumTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "postQuantumTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 2.938,
          "passed": 0,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "connectsToPostQuantumOnlyServer",
              "rawName": "connectsToPostQuantumOnlyServer()",
              "expectedReason": "The JDKs currently in the testbed matrix do not offer X25519MLKEM768, and the published OkHttp API cannot select that named group yet. The PQC-only TLS 1.3 listener therefore rejects the handshake; a green result means the capability landed.",
              "className": "okhttp.testbed.containers.PostQuantumTest",
              "status": "expected",
              "timeSeconds": 0.067,
              "message": "javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure",
              "detail": "javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)\n\tat java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:353)\n\tat java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:305)\n\tat java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:192)\n\tat java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)\n\tat java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1511)\n\tat java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:456)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:427)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:352)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:206)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:78)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:304)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)"
            }
          ]
        },
        {
          "name": "PostQuantumTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.PostQuantumTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "postQuantumTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 3.252,
          "passed": 0,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "connectsToPostQuantumOnlyServer",
              "rawName": "connectsToPostQuantumOnlyServer()",
              "expectedReason": "The JDKs currently in the testbed matrix do not offer X25519MLKEM768, and the published OkHttp API cannot select that named group yet. The PQC-only TLS 1.3 listener therefore rejects the handshake; a green result means the capability landed.",
              "className": "okhttp.testbed.containers.PostQuantumTest",
              "status": "expected",
              "timeSeconds": 0.058,
              "message": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure",
              "detail": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)\n\tat java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:370)\n\tat java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:305)\n\tat java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:209)\n\tat java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)\n\tat java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1509)\n\tat java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1424)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:352)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:206)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:78)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:304)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)"
            }
          ]
        },
        {
          "name": "PostQuantumTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.PostQuantumTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "postQuantumTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 3.125,
          "passed": 0,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "connectsToPostQuantumOnlyServer",
              "rawName": "connectsToPostQuantumOnlyServer()",
              "expectedReason": "The JDKs currently in the testbed matrix do not offer X25519MLKEM768, and the published OkHttp API cannot select that named group yet. The PQC-only TLS 1.3 listener therefore rejects the handshake; a green result means the capability landed.",
              "className": "okhttp.testbed.containers.PostQuantumTest",
              "status": "expected",
              "timeSeconds": 0.185,
              "message": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure",
              "detail": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:130)\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)\n\tat java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:370)\n\tat java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:299)\n\tat java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:209)\n\tat java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)\n\tat java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1505)\n\tat java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1420)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:352)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:206)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:78)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:304)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)"
            }
          ]
        },
        {
          "name": "PostQuantumTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.PostQuantumTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "postQuantumTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 3.071,
          "passed": 0,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "connectsToPostQuantumOnlyServer",
              "rawName": "connectsToPostQuantumOnlyServer()",
              "expectedReason": "The JDKs currently in the testbed matrix do not offer X25519MLKEM768, and the published OkHttp API cannot select that named group yet. The PQC-only TLS 1.3 listener therefore rejects the handshake; a green result means the capability landed.",
              "className": "okhttp.testbed.containers.PostQuantumTest",
              "status": "expected",
              "timeSeconds": 0.146,
              "message": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure",
              "detail": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:130)\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)\n\tat java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:363)\n\tat java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:299)\n\tat java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:202)\n\tat java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)\n\tat java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)\n\tat java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:352)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:206)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:78)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:304)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)"
            }
          ]
        },
        {
          "name": "PostQuantumTest \u00b7 JDK 8",
          "className": "okhttp.testbed.containers.PostQuantumTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "postQuantumTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 3.159,
          "passed": 0,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "connectsToPostQuantumOnlyServer",
              "rawName": "connectsToPostQuantumOnlyServer()",
              "expectedReason": "The JDKs currently in the testbed matrix do not offer X25519MLKEM768, and the published OkHttp API cannot select that named group yet. The PQC-only TLS 1.3 listener therefore rejects the handshake; a green result means the capability landed.",
              "className": "okhttp.testbed.containers.PostQuantumTest",
              "status": "expected",
              "timeSeconds": 0.112,
              "message": "javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure",
              "detail": "javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure\n\tat sun.security.ssl.Alert.createSSLException(Alert.java:131)\n\tat sun.security.ssl.Alert.createSSLException(Alert.java:117)\n\tat sun.security.ssl.TransportContext.fatal(TransportContext.java:319)\n\tat sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:305)\n\tat sun.security.ssl.TransportContext.dispatch(TransportContext.java:186)\n\tat sun.security.ssl.SSLTransport.decode(SSLTransport.java:152)\n\tat sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1401)\n\tat sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1309)\n\tat sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:440)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:352)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:206)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:78)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:304)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)"
            }
          ]
        }
      ],
      "clientHello": null,
      "dohMatrix": null,
      "altSvc": null,
      "tlsPolicy": [
        {
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "task": "test",
          "recordedAt": "2026-08-17T03:14:06Z",
          "javaVersion": "11.0.32",
          "javaVendor": "OpenJDK 64-Bit Server VM",
          "checks": {
            "Certificate Transparency": {
              "accepted": true,
              "detail": "HTTP 200; private CA, no SCT"
            }
          }
        },
        {
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "task": "test",
          "recordedAt": "2026-08-17T03:14:19Z",
          "javaVersion": "17.0.20",
          "javaVendor": "OpenJDK 64-Bit Server VM",
          "checks": {
            "Certificate Transparency": {
              "accepted": true,
              "detail": "HTTP 200; private CA, no SCT"
            }
          }
        },
        {
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "task": "test",
          "recordedAt": "2026-08-17T03:14:23Z",
          "javaVersion": "21.0.12",
          "javaVendor": "OpenJDK 64-Bit Server VM",
          "checks": {
            "Certificate Transparency": {
              "accepted": true,
              "detail": "HTTP 200; private CA, no SCT"
            }
          }
        },
        {
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "task": "test",
          "recordedAt": "2026-08-17T03:14:36Z",
          "javaVersion": "25.0.4",
          "javaVendor": "OpenJDK 64-Bit Server VM",
          "checks": {
            "Certificate Transparency": {
              "accepted": true,
              "detail": "HTTP 200; private CA, no SCT"
            }
          }
        },
        {
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "task": "test",
          "recordedAt": "2026-08-17T03:14:08Z",
          "javaVersion": "1.8.0_502",
          "javaVendor": "OpenJDK 64-Bit Server VM",
          "checks": {
            "Certificate Transparency": {
              "accepted": true,
              "detail": "HTTP 200; private CA, no SCT"
            }
          }
        }
      ],
      "echResults": [],
      "status": "expected",
      "passed": 304,
      "failed": 0,
      "expected": 6,
      "skipped": 0,
      "timeSeconds": 418.3
    },
    {
      "okhttpVersion": "5.5.0-SNAPSHOT",
      "label": "pinned-snapshot",
      "platforms": [
        "Android emulator API 21 \u00b7 x86_64",
        "Android emulator API 30 \u00b7 x86_64",
        "Android emulator API 35 \u00b7 x86_64",
        "Android emulator API 37.1 \u00b7 x86_64",
        "Android emulator API 37.2-beta3 \u00b7 x86_64",
        "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
        "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
        "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
        "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
        "Temurin JDK 1.8.0_502 \u00b7 amd64"
      ],
      "workflows": [
        "android-ech",
        "containers",
        "network"
      ],
      "suites": [
        {
          "name": "BadChainTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.BadChainTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 34.659,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 8420",
              "rawName": "[1] 8420",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.025,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 8421",
              "rawName": "[2] 8421",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.027,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 8422",
              "rawName": "[3] 8422",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.015,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] 8423",
              "rawName": "[4] 8423",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.012,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] 8424",
              "rawName": "[5] 8424",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.011,
              "message": "",
              "detail": ""
            },
            {
              "name": "goodChainIsAccepted",
              "rawName": "goodChainIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.103,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BadChainTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.BadChainTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 39.043,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 8420",
              "rawName": "[1] 8420",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.034,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 8421",
              "rawName": "[2] 8421",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.038,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 8422",
              "rawName": "[3] 8422",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.02,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] 8423",
              "rawName": "[4] 8423",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] 8424",
              "rawName": "[5] 8424",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.015,
              "message": "",
              "detail": ""
            },
            {
              "name": "goodChainIsAccepted",
              "rawName": "goodChainIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.244,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BadChainTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.BadChainTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 34.669,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 8420",
              "rawName": "[1] 8420",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.044,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 8421",
              "rawName": "[2] 8421",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.035,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 8422",
              "rawName": "[3] 8422",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.024,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] 8423",
              "rawName": "[4] 8423",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.015,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] 8424",
              "rawName": "[5] 8424",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.016,
              "message": "",
              "detail": ""
            },
            {
              "name": "goodChainIsAccepted",
              "rawName": "goodChainIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BadChainTest",
              "status": "passed",
              "timeSeconds": 0.381,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicMockServerTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.BasicMockServerTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 11.475,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testHttpsRequest",
              "rawName": "testHttpsRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 8.905,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRequest",
              "rawName": "testRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 1.784,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicMockServerTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.BasicMockServerTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 12.339,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testHttpsRequest",
              "rawName": "testHttpsRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 9.376,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRequest",
              "rawName": "testRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 2.114,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicMockServerTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.BasicMockServerTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 11.014,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testHttpsRequest",
              "rawName": "testHttpsRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 7.871,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRequest",
              "rawName": "testRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicMockServerTest",
              "status": "passed",
              "timeSeconds": 1.91,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicProxyTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.BasicProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 17.118,
          "passed": 8,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testOkHttpDirect",
              "rawName": "testOkHttpDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.751,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpProxied",
              "rawName": "testOkHttpProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.699,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureDirect",
              "rawName": "testOkHttpSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.202,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureProxiedHttp1",
              "rawName": "testOkHttpSecureProxiedHttp1()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 3.395,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionDirect",
              "rawName": "testUrlConnectionDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.737,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionPlaintextProxied",
              "rawName": "testUrlConnectionPlaintextProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.767,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureDirect",
              "rawName": "testUrlConnectionSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.33,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureProxied",
              "rawName": "testUrlConnectionSecureProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.233,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicProxyTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.BasicProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 19.534,
          "passed": 8,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testOkHttpDirect",
              "rawName": "testOkHttpDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.167,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpProxied",
              "rawName": "testOkHttpProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.03,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureDirect",
              "rawName": "testOkHttpSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.724,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureProxiedHttp1",
              "rawName": "testOkHttpSecureProxiedHttp1()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.99,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionDirect",
              "rawName": "testUrlConnectionDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.085,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionPlaintextProxied",
              "rawName": "testUrlConnectionPlaintextProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.089,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureDirect",
              "rawName": "testUrlConnectionSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.669,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureProxied",
              "rawName": "testUrlConnectionSecureProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.776,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicProxyTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.BasicProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 18.794,
          "passed": 8,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testOkHttpDirect",
              "rawName": "testOkHttpDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.888,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpProxied",
              "rawName": "testOkHttpProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.913,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureDirect",
              "rawName": "testOkHttpSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.558,
              "message": "",
              "detail": ""
            },
            {
              "name": "testOkHttpSecureProxiedHttp1",
              "rawName": "testOkHttpSecureProxiedHttp1()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.625,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionDirect",
              "rawName": "testUrlConnectionDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.933,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionPlaintextProxied",
              "rawName": "testUrlConnectionPlaintextProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 1.904,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureDirect",
              "rawName": "testUrlConnectionSecureDirect()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 2.547,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUrlConnectionSecureProxied",
              "rawName": "testUrlConnectionSecureProxied()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicProxyTest",
              "status": "passed",
              "timeSeconds": 3.422,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientCertificateTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.ClientCertificateTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.684,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aCertificateFromAnUnacceptedIssuerIsNotSent",
              "rawName": "aCertificateFromAnUnacceptedIssuerIsNotSent()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.126,
              "message": "",
              "detail": ""
            },
            {
              "name": "aClientCertificateIsPresentedAndAccepted",
              "rawName": "aClientCertificateIsPresentedAndAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.047,
              "message": "",
              "detail": ""
            },
            {
              "name": "omittingTheCertificateFailsDistinguishably",
              "rawName": "omittingTheCertificateFailsDistinguishably()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.094,
              "message": "",
              "detail": ""
            },
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.095,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientCertificateTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.ClientCertificateTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.776,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aCertificateFromAnUnacceptedIssuerIsNotSent",
              "rawName": "aCertificateFromAnUnacceptedIssuerIsNotSent()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.118,
              "message": "",
              "detail": ""
            },
            {
              "name": "aClientCertificateIsPresentedAndAccepted",
              "rawName": "aClientCertificateIsPresentedAndAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.048,
              "message": "",
              "detail": ""
            },
            {
              "name": "omittingTheCertificateFailsDistinguishably",
              "rawName": "omittingTheCertificateFailsDistinguishably()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.098,
              "message": "",
              "detail": ""
            },
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.094,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientCertificateTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.ClientCertificateTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.723,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aCertificateFromAnUnacceptedIssuerIsNotSent",
              "rawName": "aCertificateFromAnUnacceptedIssuerIsNotSent()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.12,
              "message": "",
              "detail": ""
            },
            {
              "name": "aClientCertificateIsPresentedAndAccepted",
              "rawName": "aClientCertificateIsPresentedAndAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.048,
              "message": "",
              "detail": ""
            },
            {
              "name": "omittingTheCertificateFailsDistinguishably",
              "rawName": "omittingTheCertificateFailsDistinguishably()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.095,
              "message": "",
              "detail": ""
            },
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.096,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloExtensionsTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.328,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theEchFlagAgreesWithTheExtensionList",
              "rawName": "theEchFlagAgreesWithTheExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.046,
              "message": "",
              "detail": ""
            },
            {
              "name": "theOfferCarriesItsExtensionList",
              "rawName": "theOfferCarriesItsExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloExtensionsTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.439,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theEchFlagAgreesWithTheExtensionList",
              "rawName": "theEchFlagAgreesWithTheExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.048,
              "message": "",
              "detail": ""
            },
            {
              "name": "theOfferCarriesItsExtensionList",
              "rawName": "theOfferCarriesItsExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.04,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloExtensionsTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.374,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theEchFlagAgreesWithTheExtensionList",
              "rawName": "theEchFlagAgreesWithTheExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.048,
              "message": "",
              "detail": ""
            },
            {
              "name": "theOfferCarriesItsExtensionList",
              "rawName": "theOfferCarriesItsExtensionList()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ClientHelloExtensionsTest",
              "status": "passed",
              "timeSeconds": 0.04,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ConnectionSpecTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.ConnectionSpecTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.795,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "anEmptyIntersectionFailsWithSomethingToRead",
              "rawName": "anEmptyIntersectionFailsWithSomethingToRead()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "modernTlsReachesBothCurrentVersions",
              "rawName": "modernTlsReachesBothCurrentVersions()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.092,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls12",
              "rawName": "restrictedTlsConnectsToTls12()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.046,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls13",
              "rawName": "restrictedTlsConnectsToTls13()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.045,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls10",
              "rawName": "restrictedTlsRefusesTls10()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls11",
              "rawName": "restrictedTlsRefusesTls11()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ConnectionSpecTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.ConnectionSpecTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.715,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "anEmptyIntersectionFailsWithSomethingToRead",
              "rawName": "anEmptyIntersectionFailsWithSomethingToRead()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "modernTlsReachesBothCurrentVersions",
              "rawName": "modernTlsReachesBothCurrentVersions()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.103,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls12",
              "rawName": "restrictedTlsConnectsToTls12()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.047,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls13",
              "rawName": "restrictedTlsConnectsToTls13()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.046,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls10",
              "rawName": "restrictedTlsRefusesTls10()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls11",
              "rawName": "restrictedTlsRefusesTls11()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ConnectionSpecTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.ConnectionSpecTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.733,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "anEmptyIntersectionFailsWithSomethingToRead",
              "rawName": "anEmptyIntersectionFailsWithSomethingToRead()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "modernTlsReachesBothCurrentVersions",
              "rawName": "modernTlsReachesBothCurrentVersions()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.096,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls12",
              "rawName": "restrictedTlsConnectsToTls12()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.049,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsConnectsToTls13",
              "rawName": "restrictedTlsConnectsToTls13()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.048,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls10",
              "rawName": "restrictedTlsRefusesTls10()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "restrictedTlsRefusesTls11",
              "rawName": "restrictedTlsRefusesTls11()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.ConnectionSpecTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EncryptedClientHelloTest \u00b7 API 21",
          "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
          "workflow": "android-ech",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31954315953",
          "task": "connectedAndroidTest",
          "platform": "Android emulator API 21 \u00b7 x86_64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.011,
          "passed": 0,
          "failed": 0,
          "expected": 0,
          "skipped": 3,
          "cases": [
            {
              "name": "greenPathAcceptsEncryptedClientHello",
              "rawName": "greenPathAcceptsEncryptedClientHello",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.01,
              "message": "",
              "detail": ""
            },
            {
              "name": "rejectedConfigIsRetriedWithServerConfig",
              "rawName": "rejectedConfigIsRetriedWithServerConfig",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.001,
              "message": "",
              "detail": ""
            },
            {
              "name": "rejectedConfigWithoutServerConfigIsRetriedWithoutEch",
              "rawName": "rejectedConfigWithoutServerConfigIsRetriedWithoutEch",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.0,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EncryptedClientHelloTest \u00b7 API 37.1",
          "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
          "workflow": "android-ech",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31954315953",
          "task": "connectedAndroidTest",
          "platform": "Android emulator API 37.1 \u00b7 x86_64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.862,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "greenPathAcceptsEncryptedClientHello",
              "rawName": "greenPathAcceptsEncryptedClientHello",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.274,
              "message": "",
              "detail": ""
            },
            {
              "name": "rejectedConfigIsRetriedWithServerConfig",
              "rawName": "rejectedConfigIsRetriedWithServerConfig",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.232,
              "message": "",
              "detail": ""
            },
            {
              "name": "rejectedConfigWithoutServerConfigIsRetriedWithoutEch",
              "rawName": "rejectedConfigWithoutServerConfigIsRetriedWithoutEch",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.356,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EncryptedClientHelloTest \u00b7 API 37.2-beta3",
          "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
          "workflow": "android-ech",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31954315953",
          "task": "connectedAndroidTest",
          "platform": "Android emulator API 37.2-beta3 \u00b7 x86_64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.582,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "greenPathAcceptsEncryptedClientHello",
              "rawName": "greenPathAcceptsEncryptedClientHello",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.324,
              "message": "",
              "detail": ""
            },
            {
              "name": "rejectedConfigIsRetriedWithServerConfig",
              "rawName": "rejectedConfigIsRetriedWithServerConfig",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.154,
              "message": "",
              "detail": ""
            },
            {
              "name": "rejectedConfigWithoutServerConfigIsRetriedWithoutEch",
              "rawName": "rejectedConfigWithoutServerConfigIsRetriedWithoutEch",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.EncryptedClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.104,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "FixturePinningTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.FixturePinningTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.625,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aPinForADifferentCertificateIsRefused",
              "rawName": "aPinForADifferentCertificateIsRefused()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.018,
              "message": "",
              "detail": ""
            },
            {
              "name": "chainWithoutSctsBehaviourIsRecorded",
              "rawName": "chainWithoutSctsBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.05,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRightPinIsAccepted",
              "rawName": "theRightPinIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.091,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "FixturePinningTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.FixturePinningTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.523,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aPinForADifferentCertificateIsRefused",
              "rawName": "aPinForADifferentCertificateIsRefused()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.021,
              "message": "",
              "detail": ""
            },
            {
              "name": "chainWithoutSctsBehaviourIsRecorded",
              "rawName": "chainWithoutSctsBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.053,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRightPinIsAccepted",
              "rawName": "theRightPinIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.092,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "FixturePinningTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.FixturePinningTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.561,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aPinForADifferentCertificateIsRefused",
              "rawName": "aPinForADifferentCertificateIsRefused()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.02,
              "message": "",
              "detail": ""
            },
            {
              "name": "chainWithoutSctsBehaviourIsRecorded",
              "rawName": "chainWithoutSctsBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.051,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRightPinIsAccepted",
              "rawName": "theRightPinIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.FixturePinningTest",
              "status": "passed",
              "timeSeconds": 0.094,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "GoHttpbinTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.GoHttpbinTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.491,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testGzipIsDecompressedTransparently",
              "rawName": "testGzipIsDecompressedTransparently()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.207,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRedirectsAreFollowed",
              "rawName": "testRedirectsAreFollowed()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.23,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStatusCode",
              "rawName": "testStatusCode()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.213,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStreamedResponseIsChunked",
              "rawName": "testStreamedResponseIsChunked()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.234,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUnauthenticatedRequestIsChallenged",
              "rawName": "testUnauthenticatedRequestIsChallenged()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 2.604,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "GoHttpbinTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.GoHttpbinTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.08,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testGzipIsDecompressedTransparently",
              "rawName": "testGzipIsDecompressedTransparently()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.284,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRedirectsAreFollowed",
              "rawName": "testRedirectsAreFollowed()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.276,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStatusCode",
              "rawName": "testStatusCode()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.289,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStreamedResponseIsChunked",
              "rawName": "testStreamedResponseIsChunked()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.287,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUnauthenticatedRequestIsChallenged",
              "rawName": "testUnauthenticatedRequestIsChallenged()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 1.939,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "GoHttpbinTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.GoHttpbinTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.552,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testGzipIsDecompressedTransparently",
              "rawName": "testGzipIsDecompressedTransparently()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.247,
              "message": "",
              "detail": ""
            },
            {
              "name": "testRedirectsAreFollowed",
              "rawName": "testRedirectsAreFollowed()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.228,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStatusCode",
              "rawName": "testStatusCode()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.239,
              "message": "",
              "detail": ""
            },
            {
              "name": "testStreamedResponseIsChunked",
              "rawName": "testStreamedResponseIsChunked()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 0.239,
              "message": "",
              "detail": ""
            },
            {
              "name": "testUnauthenticatedRequestIsChallenged",
              "rawName": "testUnauthenticatedRequestIsChallenged()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.GoHttpbinTest",
              "status": "passed",
              "timeSeconds": 2.595,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileResponseTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.HostileResponseTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 6.613,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /hostile/no-response",
              "rawName": "[1] /hostile/no-response",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.022,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /hostile/reset",
              "rawName": "[2] /hostile/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.998,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] /hostile/truncated-body",
              "rawName": "[3] /hostile/truncated-body",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.992,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] /hostile/truncated-chunks",
              "rawName": "[4] /hostile/truncated-chunks",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.992,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] /hostile/invalid-chunk-size",
              "rawName": "[5] /hostile/invalid-chunk-size",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.009,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] /hostile/invalid-status-line",
              "rawName": "[6] /hostile/invalid-status-line",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.997,
              "message": "",
              "detail": ""
            },
            {
              "name": "completeResponseBeforeHalfCloseIsAccepted",
              "rawName": "completeResponseBeforeHalfCloseIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.593,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileResponseTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.HostileResponseTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 6.81,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /hostile/no-response",
              "rawName": "[1] /hostile/no-response",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.971,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /hostile/reset",
              "rawName": "[2] /hostile/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] /hostile/truncated-body",
              "rawName": "[3] /hostile/truncated-body",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] /hostile/truncated-chunks",
              "rawName": "[4] /hostile/truncated-chunks",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.997,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] /hostile/invalid-chunk-size",
              "rawName": "[5] /hostile/invalid-chunk-size",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.996,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] /hostile/invalid-status-line",
              "rawName": "[6] /hostile/invalid-status-line",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "completeResponseBeforeHalfCloseIsAccepted",
              "rawName": "completeResponseBeforeHalfCloseIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.824,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileResponseTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.HostileResponseTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 6.696,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /hostile/no-response",
              "rawName": "[1] /hostile/no-response",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.018,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /hostile/reset",
              "rawName": "[2] /hostile/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.0,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] /hostile/truncated-body",
              "rawName": "[3] /hostile/truncated-body",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.999,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] /hostile/truncated-chunks",
              "rawName": "[4] /hostile/truncated-chunks",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.993,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] /hostile/invalid-chunk-size",
              "rawName": "[5] /hostile/invalid-chunk-size",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 1.021,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] /hostile/invalid-status-line",
              "rawName": "[6] /hostile/invalid-status-line",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.983,
              "message": "",
              "detail": ""
            },
            {
              "name": "completeResponseBeforeHalfCloseIsAccepted",
              "rawName": "completeResponseBeforeHalfCloseIsAccepted()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileResponseTest",
              "status": "passed",
              "timeSeconds": 0.668,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2CoalescingTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.Http2CoalescingTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.748,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "twoNamesOnOneCertificateShareAConnection",
              "rawName": "twoNamesOnOneCertificateShareAConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.Http2CoalescingTest",
              "status": "passed",
              "timeSeconds": 0.092,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2CoalescingTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.Http2CoalescingTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.659,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "twoNamesOnOneCertificateShareAConnection",
              "rawName": "twoNamesOnOneCertificateShareAConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.Http2CoalescingTest",
              "status": "passed",
              "timeSeconds": 0.095,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2CoalescingTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.Http2CoalescingTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 0.713,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "twoNamesOnOneCertificateShareAConnection",
              "rawName": "twoNamesOnOneCertificateShareAConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.Http2CoalescingTest",
              "status": "passed",
              "timeSeconds": 0.109,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpSemanticsTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.HttpSemanticsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 2.678,
          "passed": 17,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 204",
              "rawName": "[1] 204",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 301",
              "rawName": "[1] 301",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 307",
              "rawName": "[1] 307",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 302",
              "rawName": "[2] 302",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 304",
              "rawName": "[2] 304",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 308",
              "rawName": "[2] 308",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 303",
              "rawName": "[3] 303",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "aCacheableResponseIsServedFromTheCache",
              "rawName": "aCacheableResponseIsServedFromTheCache()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.017,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLongRedirectChainIsAbandoned",
              "rawName": "aLongRedirectChainIsAbandoned()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "aMultipartBodyArrivesIntact",
              "rawName": "aMultipartBodyArrivesIntact()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorSuppliesCredentialsOnTheRetry",
              "rawName": "anAuthenticatorSuppliesCredentialsOnTheRetry()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorThatNeverGivesUpIsBounded",
              "rawName": "anAuthenticatorThatNeverGivesUpIsBounded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne",
              "rawName": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "cookiesRoundTripThroughTheJar",
              "rawName": "cookiesRoundTripThroughTheJar()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "gzipIsTransparentAndDeflateIsNot",
              "rawName": "gzipIsTransparentAndDeflateIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "readAndCallTimeoutsAreDistinguishable",
              "rawName": "readAndCallTimeoutsAreDistinguishable()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 2.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRequestHeadIsRecorded",
              "rawName": "theRequestHeadIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpSemanticsTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.HttpSemanticsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 2.613,
          "passed": 17,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 204",
              "rawName": "[1] 204",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 301",
              "rawName": "[1] 301",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.008,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 307",
              "rawName": "[1] 307",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 302",
              "rawName": "[2] 302",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 304",
              "rawName": "[2] 304",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 308",
              "rawName": "[2] 308",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 303",
              "rawName": "[3] 303",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "aCacheableResponseIsServedFromTheCache",
              "rawName": "aCacheableResponseIsServedFromTheCache()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.021,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLongRedirectChainIsAbandoned",
              "rawName": "aLongRedirectChainIsAbandoned()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "aMultipartBodyArrivesIntact",
              "rawName": "aMultipartBodyArrivesIntact()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorSuppliesCredentialsOnTheRetry",
              "rawName": "anAuthenticatorSuppliesCredentialsOnTheRetry()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorThatNeverGivesUpIsBounded",
              "rawName": "anAuthenticatorThatNeverGivesUpIsBounded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne",
              "rawName": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.01,
              "message": "",
              "detail": ""
            },
            {
              "name": "cookiesRoundTripThroughTheJar",
              "rawName": "cookiesRoundTripThroughTheJar()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "gzipIsTransparentAndDeflateIsNot",
              "rawName": "gzipIsTransparentAndDeflateIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "readAndCallTimeoutsAreDistinguishable",
              "rawName": "readAndCallTimeoutsAreDistinguishable()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 2.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRequestHeadIsRecorded",
              "rawName": "theRequestHeadIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpSemanticsTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.HttpSemanticsTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 2.604,
          "passed": 17,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] 204",
              "rawName": "[1] 204",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 301",
              "rawName": "[1] 301",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] 307",
              "rawName": "[1] 307",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 302",
              "rawName": "[2] 302",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 304",
              "rawName": "[2] 304",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] 308",
              "rawName": "[2] 308",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] 303",
              "rawName": "[3] 303",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "aCacheableResponseIsServedFromTheCache",
              "rawName": "aCacheableResponseIsServedFromTheCache()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.02,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLongRedirectChainIsAbandoned",
              "rawName": "aLongRedirectChainIsAbandoned()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.012,
              "message": "",
              "detail": ""
            },
            {
              "name": "aMultipartBodyArrivesIntact",
              "rawName": "aMultipartBodyArrivesIntact()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorSuppliesCredentialsOnTheRetry",
              "rawName": "anAuthenticatorSuppliesCredentialsOnTheRetry()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAuthenticatorThatNeverGivesUpIsBounded",
              "rawName": "anAuthenticatorThatNeverGivesUpIsBounded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne",
              "rawName": "authorizationIsDroppedOnACrossHostRedirectAndKeptOnASameHostOne()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.008,
              "message": "",
              "detail": ""
            },
            {
              "name": "cookiesRoundTripThroughTheJar",
              "rawName": "cookiesRoundTripThroughTheJar()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "gzipIsTransparentAndDeflateIsNot",
              "rawName": "gzipIsTransparentAndDeflateIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "readAndCallTimeoutsAreDistinguishable",
              "rawName": "readAndCallTimeoutsAreDistinguishable()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 2.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "theRequestHeadIsRecorded",
              "rawName": "theRequestHeadIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HttpSemanticsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SocksProxyTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.SocksProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.493,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testLocal",
              "rawName": "testLocal()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SocksProxyTest",
              "status": "passed",
              "timeSeconds": 3.492,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SocksProxyTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.SocksProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 4.192,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testLocal",
              "rawName": "testLocal()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SocksProxyTest",
              "status": "passed",
              "timeSeconds": 4.19,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SocksProxyTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.SocksProxyTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 3.723,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testLocal",
              "rawName": "testLocal()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SocksProxyTest",
              "status": "passed",
              "timeSeconds": 3.722,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SvcParamTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.SvcParamTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 17.118,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aMandatoryParameterThatIsUnderstoodIsHonoured",
              "rawName": "aMandatoryParameterThatIsUnderstoodIsHonoured()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAliasModeRecordIsIgnoredAndTheNameStillResolves",
              "rawName": "anAliasModeRecordIsIgnoredAndTheNameStillResolves()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.064,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAlpnListWithoutH2IsReadWithoutInventingIt",
              "rawName": "anAlpnListWithoutH2IsReadWithoutInventingIt()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            },
            {
              "name": "anUnknownParameterDoesNotSpoilTheRecord",
              "rawName": "anUnknownParameterDoesNotSpoilTheRecord()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "noDefaultAlpnRemovesTheImpliedProtocol",
              "rawName": "noDefaultAlpnRemovesTheImpliedProtocol()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.004,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SvcParamTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.SvcParamTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 18.649,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aMandatoryParameterThatIsUnderstoodIsHonoured",
              "rawName": "aMandatoryParameterThatIsUnderstoodIsHonoured()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.009,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAliasModeRecordIsIgnoredAndTheNameStillResolves",
              "rawName": "anAliasModeRecordIsIgnoredAndTheNameStillResolves()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.067,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAlpnListWithoutH2IsReadWithoutInventingIt",
              "rawName": "anAlpnListWithoutH2IsReadWithoutInventingIt()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.006,
              "message": "",
              "detail": ""
            },
            {
              "name": "anUnknownParameterDoesNotSpoilTheRecord",
              "rawName": "anUnknownParameterDoesNotSpoilTheRecord()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.007,
              "message": "",
              "detail": ""
            },
            {
              "name": "noDefaultAlpnRemovesTheImpliedProtocol",
              "rawName": "noDefaultAlpnRemovesTheImpliedProtocol()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SvcParamTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.SvcParamTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "test",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": false,
          "severity": "watch",
          "timeSeconds": 17.947,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aMandatoryParameterThatIsUnderstoodIsHonoured",
              "rawName": "aMandatoryParameterThatIsUnderstoodIsHonoured()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.005,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAliasModeRecordIsIgnoredAndTheNameStillResolves",
              "rawName": "anAliasModeRecordIsIgnoredAndTheNameStillResolves()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.064,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAlpnListWithoutH2IsReadWithoutInventingIt",
              "rawName": "anAlpnListWithoutH2IsReadWithoutInventingIt()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.038,
              "message": "",
              "detail": ""
            },
            {
              "name": "anUnknownParameterDoesNotSpoilTheRecord",
              "rawName": "anUnknownParameterDoesNotSpoilTheRecord()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "noDefaultAlpnRemovesTheImpliedProtocol",
              "rawName": "noDefaultAlpnRemovesTheImpliedProtocol()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.SvcParamTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "AlpnOverrideTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.AlpnOverrideTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.476,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithCustomSocketFactory",
              "rawName": "getWithCustomSocketFactory()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AlpnOverrideTest",
              "status": "passed",
              "timeSeconds": 0.709,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "AlpnOverrideTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.AlpnOverrideTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.213,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithCustomSocketFactory",
              "rawName": "getWithCustomSocketFactory()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AlpnOverrideTest",
              "status": "passed",
              "timeSeconds": 0.586,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "AlpnOverrideTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.AlpnOverrideTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.868,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithCustomSocketFactory",
              "rawName": "getWithCustomSocketFactory()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AlpnOverrideTest",
              "status": "passed",
              "timeSeconds": 0.67,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "AlpnOverrideTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.AlpnOverrideTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.334,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithCustomSocketFactory",
              "rawName": "getWithCustomSocketFactory()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AlpnOverrideTest",
              "status": "passed",
              "timeSeconds": 0.669,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "AlpnOverrideTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.AlpnOverrideTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 2.322,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithCustomSocketFactory",
              "rawName": "getWithCustomSocketFactory()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AlpnOverrideTest",
              "status": "passed",
              "timeSeconds": 0.794,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "AltSvcTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.AltSvcTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 2.626,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE_QUIC",
              "rawName": "[1] CLOUDFLARE_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.214,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE_QUIC",
              "rawName": "[1] CLOUDFLARE_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.171,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NGINX_QUIC",
              "rawName": "[2] NGINX_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 1.032,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NGINX_QUIC",
              "rawName": "[2] NGINX_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.661,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] HTTP3_IS",
              "rawName": "[3] HTTP3_IS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.376,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] HTTP3_IS",
              "rawName": "[3] HTTP3_IS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.111,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "AltSvcTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.AltSvcTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 2.356,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE_QUIC",
              "rawName": "[1] CLOUDFLARE_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.24,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE_QUIC",
              "rawName": "[1] CLOUDFLARE_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.143,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NGINX_QUIC",
              "rawName": "[2] NGINX_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.921,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NGINX_QUIC",
              "rawName": "[2] NGINX_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.624,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] HTTP3_IS",
              "rawName": "[3] HTTP3_IS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.286,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] HTTP3_IS",
              "rawName": "[3] HTTP3_IS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.085,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "AltSvcTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.AltSvcTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 3.856,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE_QUIC",
              "rawName": "[1] CLOUDFLARE_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.347,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE_QUIC",
              "rawName": "[1] CLOUDFLARE_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.206,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NGINX_QUIC",
              "rawName": "[2] NGINX_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 1.562,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NGINX_QUIC",
              "rawName": "[2] NGINX_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 1.16,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] HTTP3_IS",
              "rawName": "[3] HTTP3_IS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.278,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] HTTP3_IS",
              "rawName": "[3] HTTP3_IS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.15,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "AltSvcTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.AltSvcTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 2.475,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE_QUIC",
              "rawName": "[1] CLOUDFLARE_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.193,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE_QUIC",
              "rawName": "[1] CLOUDFLARE_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.141,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NGINX_QUIC",
              "rawName": "[2] NGINX_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 1.033,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NGINX_QUIC",
              "rawName": "[2] NGINX_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.64,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] HTTP3_IS",
              "rawName": "[3] HTTP3_IS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.323,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] HTTP3_IS",
              "rawName": "[3] HTTP3_IS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.092,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "AltSvcTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.AltSvcTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 3.054,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE_QUIC",
              "rawName": "[1] CLOUDFLARE_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.259,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE_QUIC",
              "rawName": "[1] CLOUDFLARE_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.144,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NGINX_QUIC",
              "rawName": "[2] NGINX_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 1.446,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NGINX_QUIC",
              "rawName": "[2] NGINX_QUIC",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.679,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] HTTP3_IS",
              "rawName": "[3] HTTP3_IS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.39,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] HTTP3_IS",
              "rawName": "[3] HTTP3_IS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.AltSvcTest",
              "status": "passed",
              "timeSeconds": 0.093,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "BasicLoomTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.BasicLoomTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "loomTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.669,
          "passed": 0,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "testHttpsRequest",
              "rawName": "testHttpsRequest()",
              "expectedReason": "Before JDK 24, Http2Connection.newStream holds intrinsic monitors across Http2Writer.flush's blocking write, which pins the virtual thread's carrier. JEP 491 removes this monitor-based pinning from JDK 24.",
              "className": "okhttp.testbed.containers.BasicLoomTest",
              "status": "expected",
              "timeSeconds": 5.625,
              "message": "org.opentest4j.AssertionFailedError: expected to be empty but was:<\"VirtualThread[#39]/runnable@ForkJoinPool-1-worker-2 reason:MONITOR\n    okhttp3.internal.http2.Http2Writer.flush(Http2Writer.kt:131) <== monitors:1\n    okhttp3.internal.http2.Http2Connection.newStream(Http2Connection.kt:270) <== monitors:2\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to be empty but was:<\"VirtualThread[#39]/runnable@ForkJoinPool-1-worker-2 reason:MONITOR\n    okhttp3.internal.http2.Http2Writer.flush(Http2Writer.kt:131) <== monitors:1\n    okhttp3.internal.http2.Http2Connection.newStream(Http2Connection.kt:270) <== monitors:2\n\">\n\tat okhttp.testbed.containers.BasicLoomTest.checkForPinning(BasicLoomTest.kt:83)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:580)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1596)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1596)"
            }
          ]
        },
        {
          "name": "BasicLoomTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.BasicLoomTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "loomTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.514,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "testHttpsRequest",
              "rawName": "testHttpsRequest()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.BasicLoomTest",
              "status": "passed",
              "timeSeconds": 5.467,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.ClientHelloTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.473,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "recordWhatTheHandshakeOffered",
              "rawName": "recordWhatTheHandshakeOffered()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.ClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.471,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.ClientHelloTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.404,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "recordWhatTheHandshakeOffered",
              "rawName": "recordWhatTheHandshakeOffered()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.ClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.403,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.ClientHelloTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.478,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "recordWhatTheHandshakeOffered",
              "rawName": "recordWhatTheHandshakeOffered()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.ClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.475,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.ClientHelloTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.365,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "recordWhatTheHandshakeOffered",
              "rawName": "recordWhatTheHandshakeOffered()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.ClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.364,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "ClientHelloTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.ClientHelloTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.221,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "recordWhatTheHandshakeOffered",
              "rawName": "recordWhatTheHandshakeOffered()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.ClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.22,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DnsFailureTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.DnsFailureTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.869,
          "passed": 3,
          "failed": 1,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aResolverHttpErrorArrivesAsAnUnknownHost",
              "rawName": "aResolverHttpErrorArrivesAsAnUnknownHost()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "failed",
              "timeSeconds": 0.506,
              "message": "org.opentest4j.AssertionFailedError: expected [a 429 from the resolver] to be instance of:<class java.net.UnknownHostException (Kotlin reflection is not available)> but had class:<class java.io.IOException (Kotlin reflection is not available)>",
              "detail": "org.opentest4j.AssertionFailedError: expected [a 429 from the resolver] to be instance of:<class java.net.UnknownHostException (Kotlin reflection is not available)> but had class:<class java.io.IOException (Kotlin reflection is not available)>\n\tat okhttp.testbed.network.DnsFailureTest.aResolverHttpErrorArrivesAsAnUnknownHost(DnsFailureTest.kt:136)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\nCaused by: java.io.IOException: response: 429 Too Many Requests\n\tat okhttp3.dnsoverhttps.internal._DnsOverHttpsQueryKt.decodeResponse(-DnsOverHttpsQuery.kt:184)\n\tat okhttp3.dnsoverhttps.internal.DnsOverHttpsQuery$enqueue$1.onResponse(-DnsOverHttpsQuery.kt:65)\n\tat okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:584)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:829)\n\tSuppressed: java.io.IOException: response: 429 Too Many Requests\n\t\t... 6 more"
            },
            {
              "name": "aValidationFailureIsAnUnknownHost",
              "rawName": "aValidationFailureIsAnUnknownHost()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.073,
              "message": "",
              "detail": ""
            },
            {
              "name": "noDataForOneFamilyStillResolvesTheOther",
              "rawName": "noDataForOneFamilyStillResolvesTheOther()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.042,
              "message": "",
              "detail": ""
            },
            {
              "name": "nxdomainDoesNotLookLikeAServerFailure",
              "rawName": "nxdomainDoesNotLookLikeAServerFailure()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.246,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DnsFailureTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.DnsFailureTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.649,
          "passed": 3,
          "failed": 1,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aResolverHttpErrorArrivesAsAnUnknownHost",
              "rawName": "aResolverHttpErrorArrivesAsAnUnknownHost()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "failed",
              "timeSeconds": 0.318,
              "message": "org.opentest4j.AssertionFailedError: expected [a 429 from the resolver] to be instance of:<class java.net.UnknownHostException (Kotlin reflection is not available)> but had class:<class java.io.IOException (Kotlin reflection is not available)>",
              "detail": "org.opentest4j.AssertionFailedError: expected [a 429 from the resolver] to be instance of:<class java.net.UnknownHostException (Kotlin reflection is not available)> but had class:<class java.io.IOException (Kotlin reflection is not available)>\n\tat okhttp.testbed.network.DnsFailureTest.aResolverHttpErrorArrivesAsAnUnknownHost(DnsFailureTest.kt:136)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1511)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1511)\nCaused by: java.io.IOException: response: 429 Too Many Requests\n\tat okhttp3.dnsoverhttps.internal._DnsOverHttpsQueryKt.decodeResponse(-DnsOverHttpsQuery.kt:184)\n\tat okhttp3.dnsoverhttps.internal.DnsOverHttpsQuery$enqueue$1.onResponse(-DnsOverHttpsQuery.kt:65)\n\tat okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:584)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n\tSuppressed: java.io.IOException: response: 429 Too Many Requests\n\t\t... 6 more"
            },
            {
              "name": "aValidationFailureIsAnUnknownHost",
              "rawName": "aValidationFailureIsAnUnknownHost()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.139,
              "message": "",
              "detail": ""
            },
            {
              "name": "noDataForOneFamilyStillResolvesTheOther",
              "rawName": "noDataForOneFamilyStillResolvesTheOther()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.03,
              "message": "",
              "detail": ""
            },
            {
              "name": "nxdomainDoesNotLookLikeAServerFailure",
              "rawName": "nxdomainDoesNotLookLikeAServerFailure()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.161,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DnsFailureTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.DnsFailureTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.222,
          "passed": 3,
          "failed": 1,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aResolverHttpErrorArrivesAsAnUnknownHost",
              "rawName": "aResolverHttpErrorArrivesAsAnUnknownHost()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "failed",
              "timeSeconds": 0.518,
              "message": "org.opentest4j.AssertionFailedError: expected [a 429 from the resolver] to be instance of:<class java.net.UnknownHostException (Kotlin reflection is not available)> but had class:<class java.io.IOException (Kotlin reflection is not available)>",
              "detail": "org.opentest4j.AssertionFailedError: expected [a 429 from the resolver] to be instance of:<class java.net.UnknownHostException (Kotlin reflection is not available)> but had class:<class java.io.IOException (Kotlin reflection is not available)>\n\tat okhttp.testbed.network.DnsFailureTest.aResolverHttpErrorArrivesAsAnUnknownHost(DnsFailureTest.kt:136)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:580)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1596)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1596)\nCaused by: java.io.IOException: response: 429 Too Many Requests\n\tat okhttp3.dnsoverhttps.internal._DnsOverHttpsQueryKt.decodeResponse(-DnsOverHttpsQuery.kt:184)\n\tat okhttp3.dnsoverhttps.internal.DnsOverHttpsQuery$enqueue$1.onResponse(-DnsOverHttpsQuery.kt:65)\n\tat okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:584)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\n\tSuppressed: java.io.IOException: response: 429 Too Many Requests\n\t\t... 6 more"
            },
            {
              "name": "aValidationFailureIsAnUnknownHost",
              "rawName": "aValidationFailureIsAnUnknownHost()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.201,
              "message": "",
              "detail": ""
            },
            {
              "name": "noDataForOneFamilyStillResolvesTheOther",
              "rawName": "noDataForOneFamilyStillResolvesTheOther()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.07,
              "message": "",
              "detail": ""
            },
            {
              "name": "nxdomainDoesNotLookLikeAServerFailure",
              "rawName": "nxdomainDoesNotLookLikeAServerFailure()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.431,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DnsFailureTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.DnsFailureTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.796,
          "passed": 3,
          "failed": 1,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aResolverHttpErrorArrivesAsAnUnknownHost",
              "rawName": "aResolverHttpErrorArrivesAsAnUnknownHost()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "failed",
              "timeSeconds": 0.539,
              "message": "org.opentest4j.AssertionFailedError: expected [a 429 from the resolver] to be instance of:<class java.net.UnknownHostException (Kotlin reflection is not available)> but had class:<class java.io.IOException (Kotlin reflection is not available)>",
              "detail": "org.opentest4j.AssertionFailedError: expected [a 429 from the resolver] to be instance of:<class java.net.UnknownHostException (Kotlin reflection is not available)> but had class:<class java.io.IOException (Kotlin reflection is not available)>\n\tat okhttp.testbed.network.DnsFailureTest.aResolverHttpErrorArrivesAsAnUnknownHost(DnsFailureTest.kt:136)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:565)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1604)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1604)\nCaused by: java.io.IOException: response: 429 Too Many Requests\n\tat okhttp3.dnsoverhttps.internal._DnsOverHttpsQueryKt.decodeResponse(-DnsOverHttpsQuery.kt:184)\n\tat okhttp3.dnsoverhttps.internal.DnsOverHttpsQuery$enqueue$1.onResponse(-DnsOverHttpsQuery.kt:65)\n\tat okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:584)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)\n\tat java.base/java.lang.Thread.run(Thread.java:1474)\n\tSuppressed: java.io.IOException: response: 429 Too Many Requests\n\t\t... 6 more"
            },
            {
              "name": "aValidationFailureIsAnUnknownHost",
              "rawName": "aValidationFailureIsAnUnknownHost()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.061,
              "message": "",
              "detail": ""
            },
            {
              "name": "noDataForOneFamilyStillResolvesTheOther",
              "rawName": "noDataForOneFamilyStillResolvesTheOther()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.027,
              "message": "",
              "detail": ""
            },
            {
              "name": "nxdomainDoesNotLookLikeAServerFailure",
              "rawName": "nxdomainDoesNotLookLikeAServerFailure()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.164,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DnsFailureTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.DnsFailureTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.175,
          "passed": 3,
          "failed": 1,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aResolverHttpErrorArrivesAsAnUnknownHost",
              "rawName": "aResolverHttpErrorArrivesAsAnUnknownHost()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "failed",
              "timeSeconds": 0.412,
              "message": "org.opentest4j.AssertionFailedError: expected [a 429 from the resolver] to be instance of:<class java.net.UnknownHostException (Kotlin reflection is not available)> but had class:<class java.io.IOException (Kotlin reflection is not available)>",
              "detail": "org.opentest4j.AssertionFailedError: expected [a 429 from the resolver] to be instance of:<class java.net.UnknownHostException (Kotlin reflection is not available)> but had class:<class java.io.IOException (Kotlin reflection is not available)>\n\tat okhttp.testbed.network.DnsFailureTest.aResolverHttpErrorArrivesAsAnUnknownHost(DnsFailureTest.kt:136)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat java.util.ArrayList.forEach(ArrayList.java:1259)\n\tat java.util.ArrayList.forEach(ArrayList.java:1259)\nCaused by: java.io.IOException: response: 429 Too Many Requests\n\tat okhttp3.dnsoverhttps.internal._DnsOverHttpsQueryKt.decodeResponse(-DnsOverHttpsQuery.kt:184)\n\tat okhttp3.dnsoverhttps.internal.DnsOverHttpsQuery$enqueue$1.onResponse(-DnsOverHttpsQuery.kt:65)\n\tat okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:584)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:750)\n\tSuppressed: java.io.IOException: response: 429 Too Many Requests\n\t\t... 6 more"
            },
            {
              "name": "aValidationFailureIsAnUnknownHost",
              "rawName": "aValidationFailureIsAnUnknownHost()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.232,
              "message": "",
              "detail": ""
            },
            {
              "name": "noDataForOneFamilyStillResolvesTheOther",
              "rawName": "noDataForOneFamilyStillResolvesTheOther()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.051,
              "message": "",
              "detail": ""
            },
            {
              "name": "nxdomainDoesNotLookLikeAServerFailure",
              "rawName": "nxdomainDoesNotLookLikeAServerFailure()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DnsFailureTest",
              "status": "passed",
              "timeSeconds": 0.478,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohMatrixTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.DohMatrixTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 12.364,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CONTROL",
              "rawName": "[1] CONTROL",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.729,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NXDOMAIN",
              "rawName": "[2] NXDOMAIN",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.34,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] TRACKER",
              "rawName": "[3] TRACKER",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.347,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] MALWARE_TEST",
              "rawName": "[4] MALWARE_TEST",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.34,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] ECH_ENABLED",
              "rawName": "[5] ECH_ENABLED",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.368,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] DNSSEC_SIGNED",
              "rawName": "[6] DNSSEC_SIGNED",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 4.466,
              "message": "",
              "detail": ""
            },
            {
              "name": "[7] DNSSEC_BOGUS",
              "rawName": "[7] DNSSEC_BOGUS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 5.764,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohMatrixTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.DohMatrixTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 12.25,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CONTROL",
              "rawName": "[1] CONTROL",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.656,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NXDOMAIN",
              "rawName": "[2] NXDOMAIN",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.263,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] TRACKER",
              "rawName": "[3] TRACKER",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.272,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] MALWARE_TEST",
              "rawName": "[4] MALWARE_TEST",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.272,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] ECH_ENABLED",
              "rawName": "[5] ECH_ENABLED",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.268,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] DNSSEC_SIGNED",
              "rawName": "[6] DNSSEC_SIGNED",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 5.609,
              "message": "",
              "detail": ""
            },
            {
              "name": "[7] DNSSEC_BOGUS",
              "rawName": "[7] DNSSEC_BOGUS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 4.903,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohMatrixTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.DohMatrixTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 8.717,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CONTROL",
              "rawName": "[1] CONTROL",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.957,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NXDOMAIN",
              "rawName": "[2] NXDOMAIN",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.463,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] TRACKER",
              "rawName": "[3] TRACKER",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.464,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] MALWARE_TEST",
              "rawName": "[4] MALWARE_TEST",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.501,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] ECH_ENABLED",
              "rawName": "[5] ECH_ENABLED",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.476,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] DNSSEC_SIGNED",
              "rawName": "[6] DNSSEC_SIGNED",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 3.883,
              "message": "",
              "detail": ""
            },
            {
              "name": "[7] DNSSEC_BOGUS",
              "rawName": "[7] DNSSEC_BOGUS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 1.963,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohMatrixTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.DohMatrixTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 7.414,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CONTROL",
              "rawName": "[1] CONTROL",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.617,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NXDOMAIN",
              "rawName": "[2] NXDOMAIN",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.26,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] TRACKER",
              "rawName": "[3] TRACKER",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.27,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] MALWARE_TEST",
              "rawName": "[4] MALWARE_TEST",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.274,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] ECH_ENABLED",
              "rawName": "[5] ECH_ENABLED",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.269,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] DNSSEC_SIGNED",
              "rawName": "[6] DNSSEC_SIGNED",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 4.759,
              "message": "",
              "detail": ""
            },
            {
              "name": "[7] DNSSEC_BOGUS",
              "rawName": "[7] DNSSEC_BOGUS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.956,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohMatrixTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.DohMatrixTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 9.186,
          "passed": 7,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CONTROL",
              "rawName": "[1] CONTROL",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.786,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] NXDOMAIN",
              "rawName": "[2] NXDOMAIN",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.298,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] TRACKER",
              "rawName": "[3] TRACKER",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.355,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] MALWARE_TEST",
              "rawName": "[4] MALWARE_TEST",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.346,
              "message": "",
              "detail": ""
            },
            {
              "name": "[5] ECH_ENABLED",
              "rawName": "[5] ECH_ENABLED",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 0.301,
              "message": "",
              "detail": ""
            },
            {
              "name": "[6] DNSSEC_SIGNED",
              "rawName": "[6] DNSSEC_SIGNED",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 3.575,
              "message": "",
              "detail": ""
            },
            {
              "name": "[7] DNSSEC_BOGUS",
              "rawName": "[7] DNSSEC_BOGUS",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohMatrixTest",
              "status": "passed",
              "timeSeconds": 3.516,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohResolverTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.DohResolverTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.324,
          "passed": 13,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.14,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.073,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.07,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.077,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.035,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.038,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.145,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.075,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.074,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.271,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.132,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.137,
              "message": "",
              "detail": ""
            },
            {
              "name": "bootstrappingByNameDoesNotRecurse",
              "rawName": "bootstrappingByNameDoesNotRecurse()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.041,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohResolverTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.DohResolverTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.074,
          "passed": 13,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.111,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.058,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.058,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.041,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.026,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.028,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.107,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.056,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.055,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.244,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.118,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.124,
              "message": "",
              "detail": ""
            },
            {
              "name": "bootstrappingByNameDoesNotRecurse",
              "rawName": "bootstrappingByNameDoesNotRecurse()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.033,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohResolverTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.DohResolverTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.924,
          "passed": 13,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.242,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.129,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.122,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.173,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.085,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.092,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.132,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.063,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.066,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.356,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.178,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.185,
              "message": "",
              "detail": ""
            },
            {
              "name": "bootstrappingByNameDoesNotRecurse",
              "rawName": "bootstrappingByNameDoesNotRecurse()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.086,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohResolverTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.DohResolverTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.043,
          "passed": 13,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.111,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.056,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.054,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.051,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.022,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.021,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.105,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.056,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.052,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.233,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.12,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.123,
              "message": "",
              "detail": ""
            },
            {
              "name": "bootstrappingByNameDoesNotRecurse",
              "rawName": "bootstrappingByNameDoesNotRecurse()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.023,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohResolverTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.DohResolverTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.26,
          "passed": 13,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.119,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.063,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.06,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.111,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.053,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.063,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.12,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.055,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] QUAD9",
              "rawName": "[3] QUAD9",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.061,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.239,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.122,
              "message": "",
              "detail": ""
            },
            {
              "name": "[4] ADGUARD",
              "rawName": "[4] ADGUARD",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.12,
              "message": "",
              "detail": ""
            },
            {
              "name": "bootstrappingByNameDoesNotRecurse",
              "rawName": "bootstrappingByNameDoesNotRecurse()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohResolverTest",
              "status": "passed",
              "timeSeconds": 0.06,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohServiceMetadataTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.DohServiceMetadataTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.358,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.073,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.075,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.074,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.041,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.042,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.041,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohServiceMetadataTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.DohServiceMetadataTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.262,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.059,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.057,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.057,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.027,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.027,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.025,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohServiceMetadataTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.DohServiceMetadataTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.685,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.121,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.127,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.131,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.097,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.106,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.093,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohServiceMetadataTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.DohServiceMetadataTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.266,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.058,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.059,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.06,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.024,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.028,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.027,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "DohServiceMetadataTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.DohServiceMetadataTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.423,
          "passed": 6,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.062,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.066,
              "message": "",
              "detail": ""
            },
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.064,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.086,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.07,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] GOOGLE",
              "rawName": "[2] GOOGLE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.DohServiceMetadataTest",
              "status": "passed",
              "timeSeconds": 0.065,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchClientHelloTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.EchClientHelloTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echConscryptTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 0.231,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theNameIsNotSentInTheClear",
              "rawName": "theNameIsNotSentInTheClear()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.218,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchClientHelloTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.EchClientHelloTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echConscryptTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 0.218,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theNameIsNotSentInTheClear",
              "rawName": "theNameIsNotSentInTheClear()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.204,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchClientHelloTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.EchClientHelloTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echConscryptTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 0.255,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theNameIsNotSentInTheClear",
              "rawName": "theNameIsNotSentInTheClear()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.239,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchClientHelloTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.EchClientHelloTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echConscryptTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 0.223,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theNameIsNotSentInTheClear",
              "rawName": "theNameIsNotSentInTheClear()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.208,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchClientHelloTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.EchClientHelloTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echConscryptTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 0.228,
          "passed": 1,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theNameIsNotSentInTheClear",
              "rawName": "theNameIsNotSentInTheClear()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchClientHelloTest",
              "status": "passed",
              "timeSeconds": 0.217,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchConscryptTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.EchConscryptTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echConscryptTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 2.56,
          "passed": 4,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "cloudflareAcceptsAnEncryptedClientHello",
              "rawName": "cloudflareAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.163,
              "message": "",
              "detail": ""
            },
            {
              "name": "defoIeAcceptsAnEncryptedClientHello",
              "rawName": "defoIeAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 1.573,
              "message": "",
              "detail": ""
            },
            {
              "name": "okHttpResolvesTheConfigListFromDns",
              "rawName": "okHttpResolvesTheConfigListFromDns()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.128,
              "message": "",
              "detail": ""
            },
            {
              "name": "tls12IsReachedWithoutEch",
              "rawName": "tls12IsReachedWithoutEch()",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no client here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "expected",
              "timeSeconds": 0.265,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7ff500e6d1e8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7ff4b9d69d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7ff500e6d1e8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7ff4b9d69d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "tlsEchDevAcceptsAnEncryptedClientHello",
              "rawName": "tlsEchDevAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.427,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchConscryptTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.EchConscryptTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echConscryptTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 2.305,
          "passed": 4,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "cloudflareAcceptsAnEncryptedClientHello",
              "rawName": "cloudflareAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.113,
              "message": "",
              "detail": ""
            },
            {
              "name": "defoIeAcceptsAnEncryptedClientHello",
              "rawName": "defoIeAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 1.541,
              "message": "",
              "detail": ""
            },
            {
              "name": "okHttpResolvesTheConfigListFromDns",
              "rawName": "okHttpResolvesTheConfigListFromDns()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.057,
              "message": "",
              "detail": ""
            },
            {
              "name": "tls12IsReachedWithoutEch",
              "rawName": "tls12IsReachedWithoutEch()",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no client here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "expected",
              "timeSeconds": 0.237,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f2a74af2828: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f2a4d169d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f2a74af2828: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f2a4d169d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "tlsEchDevAcceptsAnEncryptedClientHello",
              "rawName": "tlsEchDevAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.353,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchConscryptTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.EchConscryptTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echConscryptTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 4.005,
          "passed": 4,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "cloudflareAcceptsAnEncryptedClientHello",
              "rawName": "cloudflareAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.293,
              "message": "",
              "detail": ""
            },
            {
              "name": "defoIeAcceptsAnEncryptedClientHello",
              "rawName": "defoIeAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 2.148,
              "message": "",
              "detail": ""
            },
            {
              "name": "okHttpResolvesTheConfigListFromDns",
              "rawName": "okHttpResolvesTheConfigListFromDns()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.178,
              "message": "",
              "detail": ""
            },
            {
              "name": "tls12IsReachedWithoutEch",
              "rawName": "tls12IsReachedWithoutEch()",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no client here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "expected",
              "timeSeconds": 0.614,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7fabf4d2e888: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7fab82d69d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7fabf4d2e888: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7fab82d69d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "tlsEchDevAcceptsAnEncryptedClientHello",
              "rawName": "tlsEchDevAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.768,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchConscryptTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.EchConscryptTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echConscryptTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 2.444,
          "passed": 4,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "cloudflareAcceptsAnEncryptedClientHello",
              "rawName": "cloudflareAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.113,
              "message": "",
              "detail": ""
            },
            {
              "name": "defoIeAcceptsAnEncryptedClientHello",
              "rawName": "defoIeAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 1.551,
              "message": "",
              "detail": ""
            },
            {
              "name": "okHttpResolvesTheConfigListFromDns",
              "rawName": "okHttpResolvesTheConfigListFromDns()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.045,
              "message": "",
              "detail": ""
            },
            {
              "name": "tls12IsReachedWithoutEch",
              "rawName": "tls12IsReachedWithoutEch()",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no client here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "expected",
              "timeSeconds": 0.248,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f0050a43418: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f0029569d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f0050a43418: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f0029569d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "tlsEchDevAcceptsAnEncryptedClientHello",
              "rawName": "tlsEchDevAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.483,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchConscryptTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.EchConscryptTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echConscryptTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 3.094,
          "passed": 4,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "cloudflareAcceptsAnEncryptedClientHello",
              "rawName": "cloudflareAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.186,
              "message": "",
              "detail": ""
            },
            {
              "name": "defoIeAcceptsAnEncryptedClientHello",
              "rawName": "defoIeAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 1.651,
              "message": "",
              "detail": ""
            },
            {
              "name": "okHttpResolvesTheConfigListFromDns",
              "rawName": "okHttpResolvesTheConfigListFromDns()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.132,
              "message": "",
              "detail": ""
            },
            {
              "name": "tls12IsReachedWithoutEch",
              "rawName": "tls12IsReachedWithoutEch()",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no client here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "expected",
              "timeSeconds": 0.528,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7fc4e02c0fa8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7fc4ca369d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7fc4e02c0fa8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7fc4ca369d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "tlsEchDevAcceptsAnEncryptedClientHello",
              "rawName": "tlsEchDevAcceptsAnEncryptedClientHello()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchConscryptTest",
              "status": "passed",
              "timeSeconds": 0.591,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchGreaseTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.EchGreaseTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.63,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 0.242,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] TLS_ECH_DEV",
              "rawName": "[2] TLS_ECH_DEV",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 0.31,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] DEFO_IE",
              "rawName": "[3] DEFO_IE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 1.072,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchGreaseTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.EchGreaseTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.559,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 0.15,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] TLS_ECH_DEV",
              "rawName": "[2] TLS_ECH_DEV",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 0.362,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] DEFO_IE",
              "rawName": "[3] DEFO_IE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 1.044,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchGreaseTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.EchGreaseTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 2.709,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 0.305,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] TLS_ECH_DEV",
              "rawName": "[2] TLS_ECH_DEV",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 0.619,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] DEFO_IE",
              "rawName": "[3] DEFO_IE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 1.782,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchGreaseTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.EchGreaseTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.571,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 0.126,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] TLS_ECH_DEV",
              "rawName": "[2] TLS_ECH_DEV",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 0.365,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] DEFO_IE",
              "rawName": "[3] DEFO_IE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 1.076,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchGreaseTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.EchGreaseTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.984,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] CLOUDFLARE",
              "rawName": "[1] CLOUDFLARE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 0.165,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] TLS_ECH_DEV",
              "rawName": "[2] TLS_ECH_DEV",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 0.388,
              "message": "",
              "detail": ""
            },
            {
              "name": "[3] DEFO_IE",
              "rawName": "[3] DEFO_IE",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchGreaseTest",
              "status": "passed",
              "timeSeconds": 1.426,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "EchTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.EchTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 5.598,
          "passed": 5,
          "failed": 0,
          "expected": 7,
          "skipped": 0,
          "cases": [
            {
              "name": "cloudflareUsesEch CONSCRYPT_ECH",
              "rawName": "cloudflareUsesEch(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.161,
              "message": "",
              "detail": ""
            },
            {
              "name": "cloudflareUsesEch JDK",
              "rawName": "cloudflareUsesEch(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.799,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"sni=encrypted\"> but was:<\"fl=1292f134\nh=cloudflare-ech.com\nip=172.172.87.73\nts=1786900941.000\nvisit_scheme=https\nuag=okhttp/5.5.0-SNAPSHOT\ncolo=IAD\nsliver=none\nhttp=http/2\nloc=US\ntls=TLSv1.3\nsni=plaintext\nwarp=off\ngateway=off\nrbi=off\nkex=X25519\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"sni=encrypted\"> but was:<\"fl=1292f134\nh=cloudflare-ech.com\nip=172.172.87.73\nts=1786900941.000\nvisit_scheme=https\nuag=okhttp/5.5.0-SNAPSHOT\ncolo=IAD\nsliver=none\nhttp=http/2\nloc=US\ntls=TLSv1.3\nsni=plaintext\nwarp=off\ngateway=off\nrbi=off\nkex=X25519\n\">\n\tat okhttp.testbed.network.EchTest.cloudflareUsesEch(EchTest.kt:131)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat java.base/java.util.Optional.ifPresent(Optional.java:183)"
            },
            {
              "name": "echIsAcceptedOnDefoIe CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnDefoIe(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.782,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnDefoIe JDK",
              "rawName": "echIsAcceptedOnDefoIe(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 1.363,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"SSL_ECH_STATUS: success\"> but was:<\"<html>\n\n<head><title>Welcome to defo.ie</title>\n\n<meta name=\"referrer\" content=\"no-referrer\">\n\n</head>\n\n<body bgcolor=\"#ffffff\" width=600>\n<center>\n<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>\n<!-- First row -->\n<TR>\n   <!-- Embedded Table -->\n   <TABLE BORDER=0 CELLSPACING=4 CELLPADDING=4> \n   <!-- First row -->\n   <TR>\n      <TD ALIGN=center>\n         <IMG SRC=\"tnlogo.jpg\" ALT=\"Tolerant Networks Logo \" >\n      </TD>\n   </TR>\n   </TABLE>\n</TR>\n</TABLE>\n</center>\n<hr width=600>\n<br>\n<!-- **************************************** -->\n<!-- End header -->\n<!-- **************************************** -->\n<center><Table width=600 border=0><P><h1>defo.ie</h1>\n\n    <p>This is the defo.ie ECH check page that tells you if ECH was used.</p>\n\n    <p> PHP sez it's  Sunday 16th of August 2026 05:22:23 PM(UTC)</p>\n\n    <p>SSL_ECH_OUTER_SNI: NONE <br />\nSSL_ECH_INNER_SNI: NONE <br />\nSSL_ECH_STATUS: not attempted <img src=\"redx-small.png\" alt=\"bummer\" /> <br/>\n    </p>\n</TD>\n</TR>\n<center>\n</P>\n</table>\n \n<br> This fine domain brought to you by <a href=\"https://tolerantnetworks.com/\">Tolerant Networks Limited</a>.\n<br> Last modified: 2022-03-18, but who cares?</font> \n\n</body>\n</html>\n\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"SSL_ECH_STATUS: success\"> but was:<\"<html>\n\n<head><title>Welcome to defo.ie</title>\n\n<meta name=\"referrer\" content=\"no-referrer\">\n\n</head>\n\n<body bgcolor=\"#ffffff\" width=600>\n<center>\n<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>\n<!-- First row -->\n<TR>\n   <!-- Embedded Table -->\n   <TABLE BORDER=0 CELLSPACING=4 CELLPADDING=4> \n   <!-- First row -->\n   <TR>\n      <TD ALIGN=center>\n         <IMG SRC=\"tnlogo.jpg\" ALT=\"Tolerant Networks Logo \" >\n      </TD>"
            },
            {
              "name": "echIsAcceptedOnTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.276,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnTlsEchDev JDK",
              "rawName": "echIsAcceptedOnTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.448,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>\n  \n  <a href=\"https://tls-ech.dev\">Normal Server</a><br/>\n  <a href=\"https://stale.tls-ech.dev\">Stale Server Config</a><br/>\n  <a href=\"https://wrong.tls-ech.dev\">Wrong Public Name</a><br/>\n  <a href=\"https://tls12.tls-ech.dev\">TLS 1.2</a><br/>\n  </center>\n</body>\n</html>\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>"
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnWrongTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.164,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev JDK",
              "rawName": "echIsAcceptedOnWrongTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.209,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsRetriedOnStaleTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no platform written here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.233,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f36c0c5f128: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f3637169d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f36c0c5f128: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f3637169d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev JDK",
              "rawName": "echIsRetriedOnStaleTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.452,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>stale.tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>\n  \n  <a href=\"https://tls-ech.dev\">Normal Server</a><br/>\n  <a href=\"https://stale.tls-ech.dev\">Stale Server Config</a><br/>\n  <a href=\"https://wrong.tls-ech.dev\">Wrong Public Name</a><br/>\n  <a href=\"https://tls12.tls-ech.dev\">TLS 1.2</a><br/>\n  </center>\n</body>\n</html>\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>stale.tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>"
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev CONSCRYPT_ECH",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no platform written here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.258,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f36c08b66d8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f3637169d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f36c08b66d8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f3637169d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev JDK",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.377,
              "message": "org.opentest4j.AssertionFailedError: expected to be null but was:<[size=75 hex=0049fe0d00452b00200020015881d41a3e2ef8f2208185dc479245d20624ddd0918a8056f2e26af47e26280008000100010001000340127075626c69632e746c\u2026]>",
              "detail": "org.opentest4j.AssertionFailedError: expected to be null but was:<[size=75 hex=0049fe0d00452b00200020015881d41a3e2ef8f2208185dc479245d20624ddd0918a8056f2e26af47e26280008000100010001000340127075626c69632e746c\u2026]>\n\tat okhttp.testbed.network.EchTest.tlsIsNotUsedOnTls12TlsEchDev(EchTest.kt:222)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat java.base/java.util.Optional.ifPresent(Optional.java:183)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)\n\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)\n\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)\n\tat java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)\n\tat java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)\n\tat java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)\n\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)\n\tat java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\n\tat java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)\n\tat java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:274)\n\tat java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)\n\tat java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)"
            }
          ]
        },
        {
          "name": "EchTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.EchTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 4.98,
          "passed": 5,
          "failed": 0,
          "expected": 7,
          "skipped": 0,
          "cases": [
            {
              "name": "cloudflareUsesEch CONSCRYPT_ECH",
              "rawName": "cloudflareUsesEch(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.141,
              "message": "",
              "detail": ""
            },
            {
              "name": "cloudflareUsesEch JDK",
              "rawName": "cloudflareUsesEch(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.693,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"sni=encrypted\"> but was:<\"fl=1292f28\nh=cloudflare-ech.com\nip=52.179.88.112\nts=1786900942.000\nvisit_scheme=https\nuag=okhttp/5.5.0-SNAPSHOT\ncolo=IAD\nsliver=none\nhttp=http/2\nloc=US\ntls=TLSv1.3\nsni=plaintext\nwarp=off\ngateway=off\nrbi=off\nkex=X25519\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"sni=encrypted\"> but was:<\"fl=1292f28\nh=cloudflare-ech.com\nip=52.179.88.112\nts=1786900942.000\nvisit_scheme=https\nuag=okhttp/5.5.0-SNAPSHOT\ncolo=IAD\nsliver=none\nhttp=http/2\nloc=US\ntls=TLSv1.3\nsni=plaintext\nwarp=off\ngateway=off\nrbi=off\nkex=X25519\n\">\n\tat okhttp.testbed.network.EchTest.cloudflareUsesEch(EchTest.kt:131)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\n\tat java.base/java.util.Optional.ifPresent(Optional.java:178)"
            },
            {
              "name": "echIsAcceptedOnDefoIe CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnDefoIe(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.775,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnDefoIe JDK",
              "rawName": "echIsAcceptedOnDefoIe(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 1.033,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"SSL_ECH_STATUS: success\"> but was:<\"<html>\n\n<head><title>Welcome to defo.ie</title>\n\n<meta name=\"referrer\" content=\"no-referrer\">\n\n</head>\n\n<body bgcolor=\"#ffffff\" width=600>\n<center>\n<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>\n<!-- First row -->\n<TR>\n   <!-- Embedded Table -->\n   <TABLE BORDER=0 CELLSPACING=4 CELLPADDING=4> \n   <!-- First row -->\n   <TR>\n      <TD ALIGN=center>\n         <IMG SRC=\"tnlogo.jpg\" ALT=\"Tolerant Networks Logo \" >\n      </TD>\n   </TR>\n   </TABLE>\n</TR>\n</TABLE>\n</center>\n<hr width=600>\n<br>\n<!-- **************************************** -->\n<!-- End header -->\n<!-- **************************************** -->\n<center><Table width=600 border=0><P><h1>defo.ie</h1>\n\n    <p>This is the defo.ie ECH check page that tells you if ECH was used.</p>\n\n    <p> PHP sez it's  Sunday 16th of August 2026 05:22:24 PM(UTC)</p>\n\n    <p>SSL_ECH_OUTER_SNI: NONE <br />\nSSL_ECH_INNER_SNI: NONE <br />\nSSL_ECH_STATUS: not attempted <img src=\"redx-small.png\" alt=\"bummer\" /> <br/>\n    </p>\n</TD>\n</TR>\n<center>\n</P>\n</table>\n \n<br> This fine domain brought to you by <a href=\"https://tolerantnetworks.com/\">Tolerant Networks Limited</a>.\n<br> Last modified: 2022-03-18, but who cares?</font> \n\n</body>\n</html>\n\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"SSL_ECH_STATUS: success\"> but was:<\"<html>\n\n<head><title>Welcome to defo.ie</title>\n\n<meta name=\"referrer\" content=\"no-referrer\">\n\n</head>\n\n<body bgcolor=\"#ffffff\" width=600>\n<center>\n<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>\n<!-- First row -->\n<TR>\n   <!-- Embedded Table -->\n   <TABLE BORDER=0 CELLSPACING=4 CELLPADDING=4> \n   <!-- First row -->\n   <TR>\n      <TD ALIGN=center>\n         <IMG SRC=\"tnlogo.jpg\" ALT=\"Tolerant Networks Logo \" >\n      </TD>"
            },
            {
              "name": "echIsAcceptedOnTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.216,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnTlsEchDev JDK",
              "rawName": "echIsAcceptedOnTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.343,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>\n  \n  <a href=\"https://tls-ech.dev\">Normal Server</a><br/>\n  <a href=\"https://stale.tls-ech.dev\">Stale Server Config</a><br/>\n  <a href=\"https://wrong.tls-ech.dev\">Wrong Public Name</a><br/>\n  <a href=\"https://tls12.tls-ech.dev\">TLS 1.2</a><br/>\n  </center>\n</body>\n</html>\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>"
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnWrongTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.157,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev JDK",
              "rawName": "echIsAcceptedOnWrongTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.288,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsRetriedOnStaleTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no platform written here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.313,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7ff8f8d0b0d8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7ff8d0f69d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7ff8f8d0b0d8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7ff8d0f69d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev JDK",
              "rawName": "echIsRetriedOnStaleTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.348,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>stale.tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>\n  \n  <a href=\"https://tls-ech.dev\">Normal Server</a><br/>\n  <a href=\"https://stale.tls-ech.dev\">Stale Server Config</a><br/>\n  <a href=\"https://wrong.tls-ech.dev\">Wrong Public Name</a><br/>\n  <a href=\"https://tls12.tls-ech.dev\">TLS 1.2</a><br/>\n  </center>\n</body>\n</html>\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>stale.tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>"
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev CONSCRYPT_ECH",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no platform written here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.24,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7ff8f8d0d018: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7ff8d0f69d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7ff8f8d0d018: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7ff8d0f69d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev JDK",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.356,
              "message": "org.opentest4j.AssertionFailedError: expected to be null but was:<[size=75 hex=0049fe0d00452b00200020015881d41a3e2ef8f2208185dc479245d20624ddd0918a8056f2e26af47e26280008000100010001000340127075626c69632e746c\u2026]>",
              "detail": "org.opentest4j.AssertionFailedError: expected to be null but was:<[size=75 hex=0049fe0d00452b00200020015881d41a3e2ef8f2208185dc479245d20624ddd0918a8056f2e26af47e26280008000100010001000340127075626c69632e746c\u2026]>\n\tat okhttp.testbed.network.EchTest.tlsIsNotUsedOnTls12TlsEchDev(EchTest.kt:222)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\n\tat java.base/java.util.Optional.ifPresent(Optional.java:178)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)\n\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)\n\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)\n\tat java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)\n\tat java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)\n\tat java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)\n\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)\n\tat java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\n\tat java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)\n\tat java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)\n\tat java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)\n\tat java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)"
            }
          ]
        },
        {
          "name": "EchTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.EchTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 9.255,
          "passed": 5,
          "failed": 0,
          "expected": 7,
          "skipped": 0,
          "cases": [
            {
              "name": "cloudflareUsesEch CONSCRYPT_ECH",
              "rawName": "cloudflareUsesEch(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.251,
              "message": "",
              "detail": ""
            },
            {
              "name": "cloudflareUsesEch JDK",
              "rawName": "cloudflareUsesEch(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 1.008,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"sni=encrypted\"> but was:<\"fl=1180f97\nh=cloudflare-ech.com\nip=57.151.136.167\nts=1786900948.000\nvisit_scheme=https\nuag=okhttp/5.5.0-SNAPSHOT\ncolo=DFW\nsliver=none\nhttp=http/2\nloc=US\ntls=TLSv1.3\nsni=plaintext\nwarp=off\ngateway=off\nrbi=off\nkex=X25519\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"sni=encrypted\"> but was:<\"fl=1180f97\nh=cloudflare-ech.com\nip=57.151.136.167\nts=1786900948.000\nvisit_scheme=https\nuag=okhttp/5.5.0-SNAPSHOT\ncolo=DFW\nsliver=none\nhttp=http/2\nloc=US\ntls=TLSv1.3\nsni=plaintext\nwarp=off\ngateway=off\nrbi=off\nkex=X25519\n\">\n\tat okhttp.testbed.network.EchTest.cloudflareUsesEch(EchTest.kt:131)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:580)\n\tat java.base/java.util.Optional.ifPresent(Optional.java:178)"
            },
            {
              "name": "echIsAcceptedOnDefoIe CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnDefoIe(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 1.054,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnDefoIe JDK",
              "rawName": "echIsAcceptedOnDefoIe(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 1.881,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"SSL_ECH_STATUS: success\"> but was:<\"<html>\n\n<head><title>Welcome to defo.ie</title>\n\n<meta name=\"referrer\" content=\"no-referrer\">\n\n</head>\n\n<body bgcolor=\"#ffffff\" width=600>\n<center>\n<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>\n<!-- First row -->\n<TR>\n   <!-- Embedded Table -->\n   <TABLE BORDER=0 CELLSPACING=4 CELLPADDING=4> \n   <!-- First row -->\n   <TR>\n      <TD ALIGN=center>\n         <IMG SRC=\"tnlogo.jpg\" ALT=\"Tolerant Networks Logo \" >\n      </TD>\n   </TR>\n   </TABLE>\n</TR>\n</TABLE>\n</center>\n<hr width=600>\n<br>\n<!-- **************************************** -->\n<!-- End header -->\n<!-- **************************************** -->\n<center><Table width=600 border=0><P><h1>defo.ie</h1>\n\n    <p>This is the defo.ie ECH check page that tells you if ECH was used.</p>\n\n    <p> PHP sez it's  Sunday 16th of August 2026 05:22:32 PM(UTC)</p>\n\n    <p>SSL_ECH_OUTER_SNI: NONE <br />\nSSL_ECH_INNER_SNI: NONE <br />\nSSL_ECH_STATUS: not attempted <img src=\"redx-small.png\" alt=\"bummer\" /> <br/>\n    </p>\n</TD>\n</TR>\n<center>\n</P>\n</table>\n \n<br> This fine domain brought to you by <a href=\"https://tolerantnetworks.com/\">Tolerant Networks Limited</a>.\n<br> Last modified: 2022-03-18, but who cares?</font> \n\n</body>\n</html>\n\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"SSL_ECH_STATUS: success\"> but was:<\"<html>\n\n<head><title>Welcome to defo.ie</title>\n\n<meta name=\"referrer\" content=\"no-referrer\">\n\n</head>\n\n<body bgcolor=\"#ffffff\" width=600>\n<center>\n<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>\n<!-- First row -->\n<TR>\n   <!-- Embedded Table -->\n   <TABLE BORDER=0 CELLSPACING=4 CELLPADDING=4> \n   <!-- First row -->\n   <TR>\n      <TD ALIGN=center>\n         <IMG SRC=\"tnlogo.jpg\" ALT=\"Tolerant Networks Logo \" >\n      </TD>"
            },
            {
              "name": "echIsAcceptedOnTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.429,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnTlsEchDev JDK",
              "rawName": "echIsAcceptedOnTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.85,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>\n  \n  <a href=\"https://tls-ech.dev\">Normal Server</a><br/>\n  <a href=\"https://stale.tls-ech.dev\">Stale Server Config</a><br/>\n  <a href=\"https://wrong.tls-ech.dev\">Wrong Public Name</a><br/>\n  <a href=\"https://tls12.tls-ech.dev\">TLS 1.2</a><br/>\n  </center>\n</body>\n</html>\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>"
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnWrongTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.345,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev JDK",
              "rawName": "echIsAcceptedOnWrongTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.416,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsRetriedOnStaleTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no platform written here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.553,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f3e88ccf628: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f3e0ed69d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f3e88ccf628: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f3e0ed69d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev JDK",
              "rawName": "echIsRetriedOnStaleTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.912,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>stale.tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>\n  \n  <a href=\"https://tls-ech.dev\">Normal Server</a><br/>\n  <a href=\"https://stale.tls-ech.dev\">Stale Server Config</a><br/>\n  <a href=\"https://wrong.tls-ech.dev\">Wrong Public Name</a><br/>\n  <a href=\"https://tls12.tls-ech.dev\">TLS 1.2</a><br/>\n  </center>\n</body>\n</html>\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>stale.tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>"
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev CONSCRYPT_ECH",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no platform written here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.675,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f3e881fc5e8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f3e0ed69d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f3e881fc5e8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f3e0ed69d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev JDK",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.803,
              "message": "org.opentest4j.AssertionFailedError: expected to be null but was:<[size=75 hex=0049fe0d00452b00200020015881d41a3e2ef8f2208185dc479245d20624ddd0918a8056f2e26af47e26280008000100010001000340127075626c69632e746c\u2026]>",
              "detail": "org.opentest4j.AssertionFailedError: expected to be null but was:<[size=75 hex=0049fe0d00452b00200020015881d41a3e2ef8f2208185dc479245d20624ddd0918a8056f2e26af47e26280008000100010001000340127075626c69632e746c\u2026]>\n\tat okhttp.testbed.network.EchTest.tlsIsNotUsedOnTls12TlsEchDev(EchTest.kt:222)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:580)\n\tat java.base/java.util.Optional.ifPresent(Optional.java:178)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)\n\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)\n\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)\n\tat java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)\n\tat java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939)\n\tat java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)\n\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)\n\tat java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\n\tat java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)\n\tat java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)\n\tat java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)\n\tat java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)"
            }
          ]
        },
        {
          "name": "EchTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.EchTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 5.173,
          "passed": 5,
          "failed": 0,
          "expected": 7,
          "skipped": 0,
          "cases": [
            {
              "name": "cloudflareUsesEch CONSCRYPT_ECH",
              "rawName": "cloudflareUsesEch(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.153,
              "message": "",
              "detail": ""
            },
            {
              "name": "cloudflareUsesEch JDK",
              "rawName": "cloudflareUsesEch(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.714,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"sni=encrypted\"> but was:<\"fl=1291f131\nh=cloudflare-ech.com\nip=172.172.157.222\nts=1786900942.000\nvisit_scheme=https\nuag=okhttp/5.5.0-SNAPSHOT\ncolo=IAD\nsliver=none\nhttp=http/2\nloc=US\ntls=TLSv1.3\nsni=plaintext\nwarp=off\ngateway=off\nrbi=off\nkex=X25519\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"sni=encrypted\"> but was:<\"fl=1291f131\nh=cloudflare-ech.com\nip=172.172.157.222\nts=1786900942.000\nvisit_scheme=https\nuag=okhttp/5.5.0-SNAPSHOT\ncolo=IAD\nsliver=none\nhttp=http/2\nloc=US\ntls=TLSv1.3\nsni=plaintext\nwarp=off\ngateway=off\nrbi=off\nkex=X25519\n\">\n\tat okhttp.testbed.network.EchTest.cloudflareUsesEch(EchTest.kt:131)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:565)\n\tat java.base/java.util.Optional.ifPresent(Optional.java:178)"
            },
            {
              "name": "echIsAcceptedOnDefoIe CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnDefoIe(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.75,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnDefoIe JDK",
              "rawName": "echIsAcceptedOnDefoIe(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 1.266,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"SSL_ECH_STATUS: success\"> but was:<\"<html>\n\n<head><title>Welcome to defo.ie</title>\n\n<meta name=\"referrer\" content=\"no-referrer\">\n\n</head>\n\n<body bgcolor=\"#ffffff\" width=600>\n<center>\n<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>\n<!-- First row -->\n<TR>\n   <!-- Embedded Table -->\n   <TABLE BORDER=0 CELLSPACING=4 CELLPADDING=4> \n   <!-- First row -->\n   <TR>\n      <TD ALIGN=center>\n         <IMG SRC=\"tnlogo.jpg\" ALT=\"Tolerant Networks Logo \" >\n      </TD>\n   </TR>\n   </TABLE>\n</TR>\n</TABLE>\n</center>\n<hr width=600>\n<br>\n<!-- **************************************** -->\n<!-- End header -->\n<!-- **************************************** -->\n<center><Table width=600 border=0><P><h1>defo.ie</h1>\n\n    <p>This is the defo.ie ECH check page that tells you if ECH was used.</p>\n\n    <p> PHP sez it's  Sunday 16th of August 2026 05:22:24 PM(UTC)</p>\n\n    <p>SSL_ECH_OUTER_SNI: NONE <br />\nSSL_ECH_INNER_SNI: NONE <br />\nSSL_ECH_STATUS: not attempted <img src=\"redx-small.png\" alt=\"bummer\" /> <br/>\n    </p>\n</TD>\n</TR>\n<center>\n</P>\n</table>\n \n<br> This fine domain brought to you by <a href=\"https://tolerantnetworks.com/\">Tolerant Networks Limited</a>.\n<br> Last modified: 2022-03-18, but who cares?</font> \n\n</body>\n</html>\n\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"SSL_ECH_STATUS: success\"> but was:<\"<html>\n\n<head><title>Welcome to defo.ie</title>\n\n<meta name=\"referrer\" content=\"no-referrer\">\n\n</head>\n\n<body bgcolor=\"#ffffff\" width=600>\n<center>\n<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>\n<!-- First row -->\n<TR>\n   <!-- Embedded Table -->\n   <TABLE BORDER=0 CELLSPACING=4 CELLPADDING=4> \n   <!-- First row -->\n   <TR>\n      <TD ALIGN=center>\n         <IMG SRC=\"tnlogo.jpg\" ALT=\"Tolerant Networks Logo \" >\n      </TD>"
            },
            {
              "name": "echIsAcceptedOnTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.204,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnTlsEchDev JDK",
              "rawName": "echIsAcceptedOnTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.441,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>\n  \n  <a href=\"https://tls-ech.dev\">Normal Server</a><br/>\n  <a href=\"https://stale.tls-ech.dev\">Stale Server Config</a><br/>\n  <a href=\"https://wrong.tls-ech.dev\">Wrong Public Name</a><br/>\n  <a href=\"https://tls12.tls-ech.dev\">TLS 1.2</a><br/>\n  </center>\n</body>\n</html>\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>"
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnWrongTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.172,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev JDK",
              "rawName": "echIsAcceptedOnWrongTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.189,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsRetriedOnStaleTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no platform written here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.238,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f4a80b5bdb8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f49e7b69d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f4a80b5bdb8: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f49e7b69d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev JDK",
              "rawName": "echIsRetriedOnStaleTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.327,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>stale.tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>\n  \n  <a href=\"https://tls-ech.dev\">Normal Server</a><br/>\n  <a href=\"https://stale.tls-ech.dev\">Stale Server Config</a><br/>\n  <a href=\"https://wrong.tls-ech.dev\">Wrong Public Name</a><br/>\n  <a href=\"https://tls12.tls-ech.dev\">TLS 1.2</a><br/>\n  </center>\n</body>\n</html>\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>stale.tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>"
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev CONSCRYPT_ECH",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no platform written here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.217,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f4a80b5a698: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f49e7b69d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7f4a80b5a698: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7f49e7b69d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev JDK",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.422,
              "message": "org.opentest4j.AssertionFailedError: expected to be null but was:<[size=75 hex=0049fe0d00452b00200020015881d41a3e2ef8f2208185dc479245d20624ddd0918a8056f2e26af47e26280008000100010001000340127075626c69632e746c\u2026]>",
              "detail": "org.opentest4j.AssertionFailedError: expected to be null but was:<[size=75 hex=0049fe0d00452b00200020015881d41a3e2ef8f2208185dc479245d20624ddd0918a8056f2e26af47e26280008000100010001000340127075626c69632e746c\u2026]>\n\tat okhttp.testbed.network.EchTest.tlsIsNotUsedOnTls12TlsEchDev(EchTest.kt:222)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:565)\n\tat java.base/java.util.Optional.ifPresent(Optional.java:178)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)\n\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)\n\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)\n\tat java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)\n\tat java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939)\n\tat java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)\n\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)\n\tat java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)\n\tat java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)\n\tat java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)\n\tat java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)\n\tat java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)\n\tat java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)"
            }
          ]
        },
        {
          "name": "EchTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.EchTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "echTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 6.721,
          "passed": 5,
          "failed": 0,
          "expected": 7,
          "skipped": 0,
          "cases": [
            {
              "name": "cloudflareUsesEch CONSCRYPT_ECH",
              "rawName": "cloudflareUsesEch(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.183,
              "message": "",
              "detail": ""
            },
            {
              "name": "cloudflareUsesEch JDK",
              "rawName": "cloudflareUsesEch(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.765,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"sni=encrypted\"> but was:<\"fl=14f672\nh=cloudflare-ech.com\nip=64.236.153.146\nts=1786900950.000\nvisit_scheme=https\nuag=okhttp/5.5.0-SNAPSHOT\ncolo=ORD\nsliver=none\nhttp=http/2\nloc=US\ntls=TLSv1.3\nsni=plaintext\nwarp=off\ngateway=off\nrbi=off\nkex=P-256\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"sni=encrypted\"> but was:<\"fl=14f672\nh=cloudflare-ech.com\nip=64.236.153.146\nts=1786900950.000\nvisit_scheme=https\nuag=okhttp/5.5.0-SNAPSHOT\ncolo=ORD\nsliver=none\nhttp=http/2\nloc=US\ntls=TLSv1.3\nsni=plaintext\nwarp=off\ngateway=off\nrbi=off\nkex=P-256\n\">\n\tat okhttp.testbed.network.EchTest.cloudflareUsesEch(EchTest.kt:131)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat java.util.Optional.ifPresent(Optional.java:159)"
            },
            {
              "name": "echIsAcceptedOnDefoIe CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnDefoIe(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.841,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnDefoIe JDK",
              "rawName": "echIsAcceptedOnDefoIe(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 1.38,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"SSL_ECH_STATUS: success\"> but was:<\"<html>\n\n<head><title>Welcome to defo.ie</title>\n\n<meta name=\"referrer\" content=\"no-referrer\">\n\n</head>\n\n<body bgcolor=\"#ffffff\" width=600>\n<center>\n<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>\n<!-- First row -->\n<TR>\n   <!-- Embedded Table -->\n   <TABLE BORDER=0 CELLSPACING=4 CELLPADDING=4> \n   <!-- First row -->\n   <TR>\n      <TD ALIGN=center>\n         <IMG SRC=\"tnlogo.jpg\" ALT=\"Tolerant Networks Logo \" >\n      </TD>\n   </TR>\n   </TABLE>\n</TR>\n</TABLE>\n</center>\n<hr width=600>\n<br>\n<!-- **************************************** -->\n<!-- End header -->\n<!-- **************************************** -->\n<center><Table width=600 border=0><P><h1>defo.ie</h1>\n\n    <p>This is the defo.ie ECH check page that tells you if ECH was used.</p>\n\n    <p> PHP sez it's  Sunday 16th of August 2026 05:22:32 PM(UTC)</p>\n\n    <p>SSL_ECH_OUTER_SNI: NONE <br />\nSSL_ECH_INNER_SNI: NONE <br />\nSSL_ECH_STATUS: not attempted <img src=\"redx-small.png\" alt=\"bummer\" /> <br/>\n    </p>\n</TD>\n</TR>\n<center>\n</P>\n</table>\n \n<br> This fine domain brought to you by <a href=\"https://tolerantnetworks.com/\">Tolerant Networks Limited</a>.\n<br> Last modified: 2022-03-18, but who cares?</font> \n\n</body>\n</html>\n\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"SSL_ECH_STATUS: success\"> but was:<\"<html>\n\n<head><title>Welcome to defo.ie</title>\n\n<meta name=\"referrer\" content=\"no-referrer\">\n\n</head>\n\n<body bgcolor=\"#ffffff\" width=600>\n<center>\n<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>\n<!-- First row -->\n<TR>\n   <!-- Embedded Table -->\n   <TABLE BORDER=0 CELLSPACING=4 CELLPADDING=4> \n   <!-- First row -->\n   <TR>\n      <TD ALIGN=center>\n         <IMG SRC=\"tnlogo.jpg\" ALT=\"Tolerant Networks Logo \" >\n      </TD>"
            },
            {
              "name": "echIsAcceptedOnTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.317,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnTlsEchDev JDK",
              "rawName": "echIsAcceptedOnTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.503,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>\n  \n  <a href=\"https://tls-ech.dev\">Normal Server</a><br/>\n  <a href=\"https://stale.tls-ech.dev\">Stale Server Config</a><br/>\n  <a href=\"https://wrong.tls-ech.dev\">Wrong Public Name</a><br/>\n  <a href=\"https://tls12.tls-ech.dev\">TLS 1.2</a><br/>\n  </center>\n</body>\n</html>\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>"
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsAcceptedOnWrongTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.28,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev JDK",
              "rawName": "echIsAcceptedOnWrongTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "",
              "className": "okhttp.testbed.network.EchTest",
              "status": "passed",
              "timeSeconds": 0.315,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev CONSCRYPT_ECH",
              "rawName": "echIsRetriedOnStaleTlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no platform written here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.447,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7fad842c9178: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7fad69f69d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7fad842c9178: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7fad69f69d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev JDK",
              "rawName": "echIsRetriedOnStaleTlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.542,
              "message": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>stale.tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>\n  \n  <a href=\"https://tls-ech.dev\">Normal Server</a><br/>\n  <a href=\"https://stale.tls-ech.dev\">Stale Server Config</a><br/>\n  <a href=\"https://wrong.tls-ech.dev\">Wrong Public Name</a><br/>\n  <a href=\"https://tls12.tls-ech.dev\">TLS 1.2</a><br/>\n  </center>\n</body>\n</html>\n\">",
              "detail": "org.opentest4j.AssertionFailedError: expected to contain:<\"You are using ECH\"> but was:<\"<!DOCTYPE html>\n<html>\n<head>\n<title>Welcome to ECH!</title>\n<style>\n    body {\n        width: 35em;\n        margin: 0 auto;\n        font-family: Tahoma, Verdana, Arial, sans-serif;\n    }\n</style>\n</head>\n<body>\n  <center>\n  <h1>stale.tls-ech.dev</h1>\n    <h2>You are not using ECH. :(</h2>\n    <a href=\"/ech.dns\">Active ECH Config</a><br/>\n  <br/>\n  <hr>\n  <br/>"
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev CONSCRYPT_ECH",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev(TlsPlatform) CONSCRYPT_ECH",
              "expectedReason": "Falling back after a server rejects ECH needs the retry configs read back, which takes SSL_get0_ech_retry_configs. Conscrypt exposes that on Android and discards it on the JVM, so no platform written here can fall back rather than fail.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.549,
              "message": "org.conscrypt.EchRejectedException: Read error: ssl=0x7fad8423a578: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7fad69f69d00:0x00000000)",
              "detail": "org.conscrypt.EchRejectedException: Read error: ssl=0x7fad8423a578: Failure in SSL library, usually a protocol error\nerror:1000013f:SSL routines:OPENSSL_internal:ECH_REJECTED (/home/runner/work/okhttp-testbed/okhttp-testbed/conscrypt/build/boringssl-3c31f33f61cdb22e48437c4347d17c6cebab1506/ssl/handshake_client.cc:1810 0x7fad69f69d00:0x00000000)\n\tat org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)\n\tat org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:631)\n\tat org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1000)\n\tat org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:984)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:779)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:650)\n\tat org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:615)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:924)\n\tat org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:793)\n\tat org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:243)\n\tat org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:225)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)"
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev JDK",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev(TlsPlatform) JDK",
              "expectedReason": "OkHttp's ConscryptPlatform takes the ECH config list and drops it, and no released Conscrypt has the method for it to call \u2014 so this cannot pass until a Conscrypt after 2.7.0 ships and OkHttp can compile against it. EchPlatformTest runs the same request with that one call added.",
              "className": "okhttp.testbed.network.EchTest",
              "status": "expected",
              "timeSeconds": 0.517,
              "message": "org.opentest4j.AssertionFailedError: expected to be null but was:<[size=75 hex=0049fe0d00452b00200020015881d41a3e2ef8f2208185dc479245d20624ddd0918a8056f2e26af47e26280008000100010001000340127075626c69632e746c\u2026]>",
              "detail": "org.opentest4j.AssertionFailedError: expected to be null but was:<[size=75 hex=0049fe0d00452b00200020015881d41a3e2ef8f2208185dc479245d20624ddd0918a8056f2e26af47e26280008000100010001000340127075626c69632e746c\u2026]>\n\tat okhttp.testbed.network.EchTest.tlsIsNotUsedOnTls12TlsEchDev(EchTest.kt:222)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat java.util.Optional.ifPresent(Optional.java:159)\n\tat java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)\n\tat java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\n\tat java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)\n\tat java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)\n\tat java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\n\tat java.util.Iterator.forEachRemaining(Iterator.java:116)\n\tat java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)\n\tat java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\n\tat java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\n\tat java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)\n\tat java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)\n\tat java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\n\tat java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)\n\tat java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:272)\n\tat java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\n\tat java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)"
            }
          ]
        },
        {
          "name": "HappyEyeballsTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.HappyEyeballsTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 11.799,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 1,
          "cases": [
            {
              "name": "aDualStackNameConnectsUsingIpv6",
              "rawName": "aDualStackNameConnectsUsingIpv6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "skipped",
              "timeSeconds": 0.003,
              "message": "org.opentest4j.TestAbortedException: Assumption failed: this runner has no working IPv6 route",
              "detail": ""
            },
            {
              "name": "aDualStackNameConnectsWithoutIpv6",
              "rawName": "aDualStackNameConnectsWithoutIpv6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 1.248,
              "message": "",
              "detail": ""
            },
            {
              "name": "aV6OnlyNameFailsPromptlyWithoutV6",
              "rawName": "aV6OnlyNameFailsPromptlyWithoutV6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "anUnreachableFirstAddressDoesNotStopTheConnection",
              "rawName": "anUnreachableFirstAddressDoesNotStopTheConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.288,
              "message": "",
              "detail": ""
            },
            {
              "name": "everyAddressUnreachableFailsRatherThanHanging",
              "rawName": "everyAddressUnreachableFailsRatherThanHanging()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 10.255,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HappyEyeballsTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.HappyEyeballsTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 11.731,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 1,
          "cases": [
            {
              "name": "aDualStackNameConnectsUsingIpv6",
              "rawName": "aDualStackNameConnectsUsingIpv6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "skipped",
              "timeSeconds": 0.003,
              "message": "org.opentest4j.TestAbortedException: Assumption failed: this runner has no working IPv6 route",
              "detail": ""
            },
            {
              "name": "aDualStackNameConnectsWithoutIpv6",
              "rawName": "aDualStackNameConnectsWithoutIpv6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 1.197,
              "message": "",
              "detail": ""
            },
            {
              "name": "aV6OnlyNameFailsPromptlyWithoutV6",
              "rawName": "aV6OnlyNameFailsPromptlyWithoutV6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "anUnreachableFirstAddressDoesNotStopTheConnection",
              "rawName": "anUnreachableFirstAddressDoesNotStopTheConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.27,
              "message": "",
              "detail": ""
            },
            {
              "name": "everyAddressUnreachableFailsRatherThanHanging",
              "rawName": "everyAddressUnreachableFailsRatherThanHanging()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 10.257,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HappyEyeballsTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.HappyEyeballsTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 11.304,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 1,
          "cases": [
            {
              "name": "aDualStackNameConnectsUsingIpv6",
              "rawName": "aDualStackNameConnectsUsingIpv6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "skipped",
              "timeSeconds": 0.003,
              "message": "org.opentest4j.TestAbortedException: Assumption failed: this runner has no working IPv6 route",
              "detail": ""
            },
            {
              "name": "aDualStackNameConnectsWithoutIpv6",
              "rawName": "aDualStackNameConnectsWithoutIpv6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.716,
              "message": "",
              "detail": ""
            },
            {
              "name": "aV6OnlyNameFailsPromptlyWithoutV6",
              "rawName": "aV6OnlyNameFailsPromptlyWithoutV6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "anUnreachableFirstAddressDoesNotStopTheConnection",
              "rawName": "anUnreachableFirstAddressDoesNotStopTheConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.323,
              "message": "",
              "detail": ""
            },
            {
              "name": "everyAddressUnreachableFailsRatherThanHanging",
              "rawName": "everyAddressUnreachableFailsRatherThanHanging()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 10.257,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HappyEyeballsTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.HappyEyeballsTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 11.829,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 1,
          "cases": [
            {
              "name": "aDualStackNameConnectsUsingIpv6",
              "rawName": "aDualStackNameConnectsUsingIpv6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "skipped",
              "timeSeconds": 0.003,
              "message": "org.opentest4j.TestAbortedException: Assumption failed: this runner has no working IPv6 route",
              "detail": ""
            },
            {
              "name": "aDualStackNameConnectsWithoutIpv6",
              "rawName": "aDualStackNameConnectsWithoutIpv6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 1.288,
              "message": "",
              "detail": ""
            },
            {
              "name": "aV6OnlyNameFailsPromptlyWithoutV6",
              "rawName": "aV6OnlyNameFailsPromptlyWithoutV6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.003,
              "message": "",
              "detail": ""
            },
            {
              "name": "anUnreachableFirstAddressDoesNotStopTheConnection",
              "rawName": "anUnreachableFirstAddressDoesNotStopTheConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.272,
              "message": "",
              "detail": ""
            },
            {
              "name": "everyAddressUnreachableFailsRatherThanHanging",
              "rawName": "everyAddressUnreachableFailsRatherThanHanging()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 10.263,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HappyEyeballsTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.HappyEyeballsTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 11.863,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 1,
          "cases": [
            {
              "name": "aDualStackNameConnectsUsingIpv6",
              "rawName": "aDualStackNameConnectsUsingIpv6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "skipped",
              "timeSeconds": 0.003,
              "message": "org.opentest4j.TestAbortedException: Assumption failed: this runner has no working IPv6 route",
              "detail": ""
            },
            {
              "name": "aDualStackNameConnectsWithoutIpv6",
              "rawName": "aDualStackNameConnectsWithoutIpv6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 1.286,
              "message": "",
              "detail": ""
            },
            {
              "name": "aV6OnlyNameFailsPromptlyWithoutV6",
              "rawName": "aV6OnlyNameFailsPromptlyWithoutV6()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "anUnreachableFirstAddressDoesNotStopTheConnection",
              "rawName": "anUnreachableFirstAddressDoesNotStopTheConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 0.308,
              "message": "",
              "detail": ""
            },
            {
              "name": "everyAddressUnreachableFailsRatherThanHanging",
              "rawName": "everyAddressUnreachableFailsRatherThanHanging()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HappyEyeballsTest",
              "status": "passed",
              "timeSeconds": 10.262,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileRetryTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.HostileRetryTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "hostileTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 4.729,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getIsNotRetriedAfterAMidResponseReset",
              "rawName": "getIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 2.604,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedAfterAMidResponseReset",
              "rawName": "postIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 1.027,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.942,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileRetryTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.HostileRetryTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "hostileTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.911,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getIsNotRetriedAfterAMidResponseReset",
              "rawName": "getIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 3.788,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedAfterAMidResponseReset",
              "rawName": "postIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.997,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.928,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HostileRetryTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.HostileRetryTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "hostileTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.11,
          "passed": 3,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getIsNotRetriedAfterAMidResponseReset",
              "rawName": "getIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 3.02,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedAfterAMidResponseReset",
              "rawName": "postIsNotRetriedAfterAMidResponseReset()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 1.014,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.containers.HostileRetryTest",
              "status": "passed",
              "timeSeconds": 0.89,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2Test \u00b7 JDK 11",
          "className": "okhttp.testbed.network.Http2Test",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.046,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aLargeBodyArrivesIntactUnderFlowControl",
              "rawName": "aLargeBodyArrivesIntactUnderFlowControl()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 1.159,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLargeHeaderSurvivesADifferentHpackDecoder",
              "rawName": "aLargeHeaderSurvivesADifferentHpackDecoder()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.676,
              "message": "",
              "detail": ""
            },
            {
              "name": "alpnSelectsH2",
              "rawName": "alpnSelectsH2()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.667,
              "message": "",
              "detail": ""
            },
            {
              "name": "concurrentStreamsAllComplete",
              "rawName": "concurrentStreamsAllComplete()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 2.544,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2Test \u00b7 JDK 17",
          "className": "okhttp.testbed.network.Http2Test",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.106,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aLargeBodyArrivesIntactUnderFlowControl",
              "rawName": "aLargeBodyArrivesIntactUnderFlowControl()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 1.126,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLargeHeaderSurvivesADifferentHpackDecoder",
              "rawName": "aLargeHeaderSurvivesADifferentHpackDecoder()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.69,
              "message": "",
              "detail": ""
            },
            {
              "name": "alpnSelectsH2",
              "rawName": "alpnSelectsH2()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.695,
              "message": "",
              "detail": ""
            },
            {
              "name": "concurrentStreamsAllComplete",
              "rawName": "concurrentStreamsAllComplete()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 2.595,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2Test \u00b7 JDK 21",
          "className": "okhttp.testbed.network.Http2Test",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 3.768,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aLargeBodyArrivesIntactUnderFlowControl",
              "rawName": "aLargeBodyArrivesIntactUnderFlowControl()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.862,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLargeHeaderSurvivesADifferentHpackDecoder",
              "rawName": "aLargeHeaderSurvivesADifferentHpackDecoder()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.506,
              "message": "",
              "detail": ""
            },
            {
              "name": "alpnSelectsH2",
              "rawName": "alpnSelectsH2()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.527,
              "message": "",
              "detail": ""
            },
            {
              "name": "concurrentStreamsAllComplete",
              "rawName": "concurrentStreamsAllComplete()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 1.87,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2Test \u00b7 JDK 25",
          "className": "okhttp.testbed.network.Http2Test",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 5.03,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aLargeBodyArrivesIntactUnderFlowControl",
              "rawName": "aLargeBodyArrivesIntactUnderFlowControl()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 1.149,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLargeHeaderSurvivesADifferentHpackDecoder",
              "rawName": "aLargeHeaderSurvivesADifferentHpackDecoder()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.658,
              "message": "",
              "detail": ""
            },
            {
              "name": "alpnSelectsH2",
              "rawName": "alpnSelectsH2()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.689,
              "message": "",
              "detail": ""
            },
            {
              "name": "concurrentStreamsAllComplete",
              "rawName": "concurrentStreamsAllComplete()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 2.533,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "Http2Test \u00b7 JDK 8",
          "className": "okhttp.testbed.network.Http2Test",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 4.507,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aLargeBodyArrivesIntactUnderFlowControl",
              "rawName": "aLargeBodyArrivesIntactUnderFlowControl()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 1.029,
              "message": "",
              "detail": ""
            },
            {
              "name": "aLargeHeaderSurvivesADifferentHpackDecoder",
              "rawName": "aLargeHeaderSurvivesADifferentHpackDecoder()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.606,
              "message": "",
              "detail": ""
            },
            {
              "name": "alpnSelectsH2",
              "rawName": "alpnSelectsH2()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 0.636,
              "message": "",
              "detail": ""
            },
            {
              "name": "concurrentStreamsAllComplete",
              "rawName": "concurrentStreamsAllComplete()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.Http2Test",
              "status": "passed",
              "timeSeconds": 2.236,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpsRecordTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.HttpsRecordTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.879,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "addressHintsAreReachable",
              "rawName": "addressHintsAreReachable()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.108,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAbsentAlpnParameterIsNotAnEmptyList",
              "rawName": "anAbsentAlpnParameterIsNotAnEmptyList()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.307,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAbsentPortMeansTheSchemeDefault",
              "rawName": "anAbsentPortMeansTheSchemeDefault()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.044,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAlpnListLedByH3StillConnectsOverH2",
              "rawName": "anAlpnListLedByH3StillConnectsOverH2()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.371,
              "message": "",
              "detail": ""
            },
            {
              "name": "theDefaultAlpnIsImpliedByTheRecord",
              "rawName": "theDefaultAlpnIsImpliedByTheRecord()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.046,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpsRecordTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.HttpsRecordTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.634,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "addressHintsAreReachable",
              "rawName": "addressHintsAreReachable()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.08,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAbsentAlpnParameterIsNotAnEmptyList",
              "rawName": "anAbsentAlpnParameterIsNotAnEmptyList()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.207,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAbsentPortMeansTheSchemeDefault",
              "rawName": "anAbsentPortMeansTheSchemeDefault()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.027,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAlpnListLedByH3StillConnectsOverH2",
              "rawName": "anAlpnListLedByH3StillConnectsOverH2()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.29,
              "message": "",
              "detail": ""
            },
            {
              "name": "theDefaultAlpnIsImpliedByTheRecord",
              "rawName": "theDefaultAlpnIsImpliedByTheRecord()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.028,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpsRecordTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.HttpsRecordTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.716,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "addressHintsAreReachable",
              "rawName": "addressHintsAreReachable()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.225,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAbsentAlpnParameterIsNotAnEmptyList",
              "rawName": "anAbsentAlpnParameterIsNotAnEmptyList()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.364,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAbsentPortMeansTheSchemeDefault",
              "rawName": "anAbsentPortMeansTheSchemeDefault()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.097,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAlpnListLedByH3StillConnectsOverH2",
              "rawName": "anAlpnListLedByH3StillConnectsOverH2()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.924,
              "message": "",
              "detail": ""
            },
            {
              "name": "theDefaultAlpnIsImpliedByTheRecord",
              "rawName": "theDefaultAlpnIsImpliedByTheRecord()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.102,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpsRecordTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.HttpsRecordTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.558,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "addressHintsAreReachable",
              "rawName": "addressHintsAreReachable()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.08,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAbsentAlpnParameterIsNotAnEmptyList",
              "rawName": "anAbsentAlpnParameterIsNotAnEmptyList()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.131,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAbsentPortMeansTheSchemeDefault",
              "rawName": "anAbsentPortMeansTheSchemeDefault()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.026,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAlpnListLedByH3StillConnectsOverH2",
              "rawName": "anAlpnListLedByH3StillConnectsOverH2()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.29,
              "message": "",
              "detail": ""
            },
            {
              "name": "theDefaultAlpnIsImpliedByTheRecord",
              "rawName": "theDefaultAlpnIsImpliedByTheRecord()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.028,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "HttpsRecordTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.HttpsRecordTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.062,
          "passed": 5,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "addressHintsAreReachable",
              "rawName": "addressHintsAreReachable()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.127,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAbsentAlpnParameterIsNotAnEmptyList",
              "rawName": "anAbsentAlpnParameterIsNotAnEmptyList()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.419,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAbsentPortMeansTheSchemeDefault",
              "rawName": "anAbsentPortMeansTheSchemeDefault()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.075,
              "message": "",
              "detail": ""
            },
            {
              "name": "anAlpnListLedByH3StillConnectsOverH2",
              "rawName": "anAlpnListLedByH3StillConnectsOverH2()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.364,
              "message": "",
              "detail": ""
            },
            {
              "name": "theDefaultAlpnIsImpliedByTheRecord",
              "rawName": "theDefaultAlpnIsImpliedByTheRecord()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.HttpsRecordTest",
              "status": "passed",
              "timeSeconds": 0.073,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "LetsEncryptClientTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.LetsEncryptClientTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.896,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithIsrgRootX1",
              "rawName": "getWithIsrgRootX1()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.LetsEncryptClientTest",
              "status": "passed",
              "timeSeconds": 0.585,
              "message": "",
              "detail": ""
            },
            {
              "name": "getWithPlatformTrustedCertificates",
              "rawName": "getWithPlatformTrustedCertificates()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.LetsEncryptClientTest",
              "status": "passed",
              "timeSeconds": 0.301,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "LetsEncryptClientTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.LetsEncryptClientTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.975,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithIsrgRootX1",
              "rawName": "getWithIsrgRootX1()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.LetsEncryptClientTest",
              "status": "passed",
              "timeSeconds": 0.655,
              "message": "",
              "detail": ""
            },
            {
              "name": "getWithPlatformTrustedCertificates",
              "rawName": "getWithPlatformTrustedCertificates()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.LetsEncryptClientTest",
              "status": "passed",
              "timeSeconds": 0.307,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "LetsEncryptClientTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.LetsEncryptClientTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.628,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithIsrgRootX1",
              "rawName": "getWithIsrgRootX1()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.LetsEncryptClientTest",
              "status": "passed",
              "timeSeconds": 0.486,
              "message": "",
              "detail": ""
            },
            {
              "name": "getWithPlatformTrustedCertificates",
              "rawName": "getWithPlatformTrustedCertificates()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.LetsEncryptClientTest",
              "status": "passed",
              "timeSeconds": 0.139,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "LetsEncryptClientTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.LetsEncryptClientTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.954,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithIsrgRootX1",
              "rawName": "getWithIsrgRootX1()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.LetsEncryptClientTest",
              "status": "passed",
              "timeSeconds": 0.633,
              "message": "",
              "detail": ""
            },
            {
              "name": "getWithPlatformTrustedCertificates",
              "rawName": "getWithPlatformTrustedCertificates()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.LetsEncryptClientTest",
              "status": "passed",
              "timeSeconds": 0.303,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "LetsEncryptClientTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.LetsEncryptClientTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.754,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithIsrgRootX1",
              "rawName": "getWithIsrgRootX1()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.LetsEncryptClientTest",
              "status": "passed",
              "timeSeconds": 0.5,
              "message": "",
              "detail": ""
            },
            {
              "name": "getWithPlatformTrustedCertificates",
              "rawName": "getWithPlatformTrustedCertificates()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.LetsEncryptClientTest",
              "status": "passed",
              "timeSeconds": 0.243,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PinningTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.PinningTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.037,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aWrongPinIsRefusedAndListsTheRealPins",
              "rawName": "aWrongPinIsRefusedAndListsTheRealPins()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PinningTest",
              "status": "passed",
              "timeSeconds": 0.494,
              "message": "",
              "detail": ""
            },
            {
              "name": "revocationBehaviourIsRecorded",
              "rawName": "revocationBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PinningTest",
              "status": "passed",
              "timeSeconds": 0.542,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PinningTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.PinningTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.877,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aWrongPinIsRefusedAndListsTheRealPins",
              "rawName": "aWrongPinIsRefusedAndListsTheRealPins()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PinningTest",
              "status": "passed",
              "timeSeconds": 0.446,
              "message": "",
              "detail": ""
            },
            {
              "name": "revocationBehaviourIsRecorded",
              "rawName": "revocationBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PinningTest",
              "status": "passed",
              "timeSeconds": 0.431,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PinningTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.PinningTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.396,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aWrongPinIsRefusedAndListsTheRealPins",
              "rawName": "aWrongPinIsRefusedAndListsTheRealPins()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PinningTest",
              "status": "passed",
              "timeSeconds": 0.471,
              "message": "",
              "detail": ""
            },
            {
              "name": "revocationBehaviourIsRecorded",
              "rawName": "revocationBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PinningTest",
              "status": "passed",
              "timeSeconds": 0.925,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PinningTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.PinningTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.893,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aWrongPinIsRefusedAndListsTheRealPins",
              "rawName": "aWrongPinIsRefusedAndListsTheRealPins()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PinningTest",
              "status": "passed",
              "timeSeconds": 0.472,
              "message": "",
              "detail": ""
            },
            {
              "name": "revocationBehaviourIsRecorded",
              "rawName": "revocationBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PinningTest",
              "status": "passed",
              "timeSeconds": 0.421,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PinningTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.PinningTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.671,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "aWrongPinIsRefusedAndListsTheRealPins",
              "rawName": "aWrongPinIsRefusedAndListsTheRealPins()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PinningTest",
              "status": "passed",
              "timeSeconds": 0.3,
              "message": "",
              "detail": ""
            },
            {
              "name": "revocationBehaviourIsRecorded",
              "rawName": "revocationBehaviourIsRecorded()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PinningTest",
              "status": "passed",
              "timeSeconds": 0.371,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PostQuantumTest \u00b7 JDK 17",
          "className": "okhttp.testbed.containers.PostQuantumTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "postQuantumTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 3.212,
          "passed": 0,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "connectsToPostQuantumOnlyServer",
              "rawName": "connectsToPostQuantumOnlyServer()",
              "expectedReason": "The JDKs currently in the testbed matrix do not offer X25519MLKEM768, and the published OkHttp API cannot select that named group yet. The PQC-only TLS 1.3 listener therefore rejects the handshake; a green result means the capability landed.",
              "className": "okhttp.testbed.containers.PostQuantumTest",
              "status": "expected",
              "timeSeconds": 0.053,
              "message": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure",
              "detail": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)\n\tat java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:370)\n\tat java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:305)\n\tat java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:209)\n\tat java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)\n\tat java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1509)\n\tat java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1424)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)"
            }
          ]
        },
        {
          "name": "PostQuantumTest \u00b7 JDK 21",
          "className": "okhttp.testbed.containers.PostQuantumTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "postQuantumTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 3.079,
          "passed": 0,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "connectsToPostQuantumOnlyServer",
              "rawName": "connectsToPostQuantumOnlyServer()",
              "expectedReason": "The JDKs currently in the testbed matrix do not offer X25519MLKEM768, and the published OkHttp API cannot select that named group yet. The PQC-only TLS 1.3 listener therefore rejects the handshake; a green result means the capability landed.",
              "className": "okhttp.testbed.containers.PostQuantumTest",
              "status": "expected",
              "timeSeconds": 0.144,
              "message": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure",
              "detail": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:130)\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)\n\tat java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:370)\n\tat java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:299)\n\tat java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:209)\n\tat java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)\n\tat java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1505)\n\tat java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1420)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)"
            }
          ]
        },
        {
          "name": "PostQuantumTest \u00b7 JDK 25",
          "className": "okhttp.testbed.containers.PostQuantumTest",
          "workflow": "containers",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31990409582",
          "task": "postQuantumTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 3.181,
          "passed": 0,
          "failed": 0,
          "expected": 1,
          "skipped": 0,
          "cases": [
            {
              "name": "connectsToPostQuantumOnlyServer",
              "rawName": "connectsToPostQuantumOnlyServer()",
              "expectedReason": "The JDKs currently in the testbed matrix do not offer X25519MLKEM768, and the published OkHttp API cannot select that named group yet. The PQC-only TLS 1.3 listener therefore rejects the handshake; a green result means the capability landed.",
              "className": "okhttp.testbed.containers.PostQuantumTest",
              "status": "expected",
              "timeSeconds": 0.114,
              "message": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure",
              "detail": "javax.net.ssl.SSLHandshakeException: (handshake_failure) Received fatal alert: handshake_failure\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:130)\n\tat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)\n\tat java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:363)\n\tat java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:299)\n\tat java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:202)\n\tat java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)\n\tat java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)\n\tat java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)\n\tat java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)\n\tat okhttp3.internal.connection.ConnectPlan.connectTls(ConnectPlan.kt:364)\n\tat okhttp3.internal.connection.ConnectPlan.connectTlsEtc(ConnectPlan.kt:213)\n\tat okhttp3.internal.connection.FastFallbackExchangeFinder.find(FastFallbackExchangeFinder.kt:80)\n\tat okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:306)\n\tat okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:98)\n\tat okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:332)\n\tat okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)"
            }
          ]
        },
        {
          "name": "PublicClientCertificateTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.PublicClientCertificateTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.646,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.979,
              "message": "",
              "detail": ""
            },
            {
              "name": "theClientCertificateIsAcceptedAndOmittingItIsNot",
              "rawName": "theClientCertificateIsAcceptedAndOmittingItIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.667,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicClientCertificateTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.PublicClientCertificateTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.47,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.819,
              "message": "",
              "detail": ""
            },
            {
              "name": "theClientCertificateIsAcceptedAndOmittingItIsNot",
              "rawName": "theClientCertificateIsAcceptedAndOmittingItIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.649,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicClientCertificateTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.PublicClientCertificateTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.473,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.813,
              "message": "",
              "detail": ""
            },
            {
              "name": "theClientCertificateIsAcceptedAndOmittingItIsNot",
              "rawName": "theClientCertificateIsAcceptedAndOmittingItIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.659,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicClientCertificateTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.PublicClientCertificateTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.637,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.979,
              "message": "",
              "detail": ""
            },
            {
              "name": "theClientCertificateIsAcceptedAndOmittingItIsNot",
              "rawName": "theClientCertificateIsAcceptedAndOmittingItIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.657,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicClientCertificateTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.PublicClientCertificateTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.167,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "theCertificateIsPresentedOnASecondConnection",
              "rawName": "theCertificateIsPresentedOnASecondConnection()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.834,
              "message": "",
              "detail": ""
            },
            {
              "name": "theClientCertificateIsAcceptedAndOmittingItIsNot",
              "rawName": "theClientCertificateIsAcceptedAndOmittingItIsNot()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicClientCertificateTest",
              "status": "passed",
              "timeSeconds": 0.333,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicEncryptedClientHelloTest \u00b7 API 21",
          "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
          "workflow": "android-ech",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31954315953",
          "task": "connectedAndroidTest",
          "platform": "Android emulator API 21 \u00b7 x86_64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 0.014,
          "passed": 0,
          "failed": 0,
          "expected": 0,
          "skipped": 6,
          "cases": [
            {
              "name": "cloudflareUsesEch",
              "rawName": "cloudflareUsesEch",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.011,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnDefoIe",
              "rawName": "echIsAcceptedOnDefoIe",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.001,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnTlsEchDev",
              "rawName": "echIsAcceptedOnTlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.001,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev",
              "rawName": "echIsAcceptedOnWrongTlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.0,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev",
              "rawName": "echIsRetriedOnStaleTlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.001,
              "message": "",
              "detail": ""
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.0,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicEncryptedClientHelloTest \u00b7 API 37.1",
          "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
          "workflow": "android-ech",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31954315953",
          "task": "connectedAndroidTest",
          "platform": "Android emulator API 37.1 \u00b7 x86_64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 0.025,
          "passed": 0,
          "failed": 0,
          "expected": 0,
          "skipped": 6,
          "cases": [
            {
              "name": "cloudflareUsesEch",
              "rawName": "cloudflareUsesEch",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.018,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnDefoIe",
              "rawName": "echIsAcceptedOnDefoIe",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.001,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnTlsEchDev",
              "rawName": "echIsAcceptedOnTlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.001,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev",
              "rawName": "echIsAcceptedOnWrongTlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.001,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev",
              "rawName": "echIsRetriedOnStaleTlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicEncryptedClientHelloTest \u00b7 API 37.2-beta3",
          "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
          "workflow": "android-ech",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31954315953",
          "task": "connectedAndroidTest",
          "platform": "Android emulator API 37.2-beta3 \u00b7 x86_64",
          "reporting": true,
          "severity": "critical",
          "timeSeconds": 0.048,
          "passed": 0,
          "failed": 0,
          "expected": 0,
          "skipped": 6,
          "cases": [
            {
              "name": "cloudflareUsesEch",
              "rawName": "cloudflareUsesEch",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.017,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnDefoIe",
              "rawName": "echIsAcceptedOnDefoIe",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.001,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnTlsEchDev",
              "rawName": "echIsAcceptedOnTlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.002,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsAcceptedOnWrongTlsEchDev",
              "rawName": "echIsAcceptedOnWrongTlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.001,
              "message": "",
              "detail": ""
            },
            {
              "name": "echIsRetriedOnStaleTlsEchDev",
              "rawName": "echIsRetriedOnStaleTlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.001,
              "message": "",
              "detail": ""
            },
            {
              "name": "tlsIsNotUsedOnTls12TlsEchDev",
              "rawName": "tlsIsNotUsedOnTls12TlsEchDev",
              "expectedReason": "",
              "className": "okhttp.testbed.android.ech.PublicEncryptedClientHelloTest",
              "status": "skipped",
              "timeSeconds": 0.026,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicHostileTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.PublicHostileTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.673,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /error/close",
              "rawName": "[1] /error/close",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.119,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /error/reset",
              "rawName": "[2] /error/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.157,
              "message": "",
              "detail": ""
            },
            {
              "name": "ordinaryRequestSucceeds",
              "rawName": "ordinaryRequestSucceeds()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.098,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.292,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicHostileTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.PublicHostileTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.682,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /error/close",
              "rawName": "[1] /error/close",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.251,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /error/reset",
              "rawName": "[2] /error/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.136,
              "message": "",
              "detail": ""
            },
            {
              "name": "ordinaryRequestSucceeds",
              "rawName": "ordinaryRequestSucceeds()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.086,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.202,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicHostileTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.PublicHostileTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 1.046,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /error/close",
              "rawName": "[1] /error/close",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.323,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /error/reset",
              "rawName": "[2] /error/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.262,
              "message": "",
              "detail": ""
            },
            {
              "name": "ordinaryRequestSucceeds",
              "rawName": "ordinaryRequestSucceeds()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.176,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.278,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicHostileTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.PublicHostileTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.562,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /error/close",
              "rawName": "[1] /error/close",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.136,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /error/reset",
              "rawName": "[2] /error/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.192,
              "message": "",
              "detail": ""
            },
            {
              "name": "ordinaryRequestSucceeds",
              "rawName": "ordinaryRequestSucceeds()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.083,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.146,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "PublicHostileTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.PublicHostileTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.626,
          "passed": 4,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "[1] /error/close",
              "rawName": "[1] /error/close",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.113,
              "message": "",
              "detail": ""
            },
            {
              "name": "[2] /error/reset",
              "rawName": "[2] /error/reset",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.156,
              "message": "",
              "detail": ""
            },
            {
              "name": "ordinaryRequestSucceeds",
              "rawName": "ordinaryRequestSucceeds()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.073,
              "message": "",
              "detail": ""
            },
            {
              "name": "postIsNotRetriedWhenNoResponseArrives",
              "rawName": "postIsNotRetriedWhenNoResponseArrives()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.PublicHostileTest",
              "status": "passed",
              "timeSeconds": 0.277,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SniOverrideTest \u00b7 JDK 11",
          "className": "okhttp.testbed.network.SniOverrideTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.279,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithCustomSocketFactory",
              "rawName": "getWithCustomSocketFactory()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.SniOverrideTest",
              "status": "passed",
              "timeSeconds": 0.078,
              "message": "",
              "detail": ""
            },
            {
              "name": "getWithDns",
              "rawName": "getWithDns()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.SniOverrideTest",
              "status": "passed",
              "timeSeconds": 0.199,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SniOverrideTest \u00b7 JDK 17",
          "className": "okhttp.testbed.network.SniOverrideTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.36,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithCustomSocketFactory",
              "rawName": "getWithCustomSocketFactory()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.SniOverrideTest",
              "status": "passed",
              "timeSeconds": 0.054,
              "message": "",
              "detail": ""
            },
            {
              "name": "getWithDns",
              "rawName": "getWithDns()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.SniOverrideTest",
              "status": "passed",
              "timeSeconds": 0.304,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SniOverrideTest \u00b7 JDK 21",
          "className": "okhttp.testbed.network.SniOverrideTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.565,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithCustomSocketFactory",
              "rawName": "getWithCustomSocketFactory()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.SniOverrideTest",
              "status": "passed",
              "timeSeconds": 0.122,
              "message": "",
              "detail": ""
            },
            {
              "name": "getWithDns",
              "rawName": "getWithDns()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.SniOverrideTest",
              "status": "passed",
              "timeSeconds": 0.441,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SniOverrideTest \u00b7 JDK 25",
          "className": "okhttp.testbed.network.SniOverrideTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.315,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithCustomSocketFactory",
              "rawName": "getWithCustomSocketFactory()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.SniOverrideTest",
              "status": "passed",
              "timeSeconds": 0.059,
              "message": "",
              "detail": ""
            },
            {
              "name": "getWithDns",
              "rawName": "getWithDns()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.SniOverrideTest",
              "status": "passed",
              "timeSeconds": 0.255,
              "message": "",
              "detail": ""
            }
          ]
        },
        {
          "name": "SniOverrideTest \u00b7 JDK 8",
          "className": "okhttp.testbed.network.SniOverrideTest",
          "workflow": "network",
          "runUrl": "https://github.com/yschimke/okhttp-testbed/actions/runs/31961323314",
          "task": "networkTest",
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "reporting": true,
          "severity": "watch",
          "timeSeconds": 0.361,
          "passed": 2,
          "failed": 0,
          "expected": 0,
          "skipped": 0,
          "cases": [
            {
              "name": "getWithCustomSocketFactory",
              "rawName": "getWithCustomSocketFactory()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.SniOverrideTest",
              "status": "passed",
              "timeSeconds": 0.06,
              "message": "",
              "detail": ""
            },
            {
              "name": "getWithDns",
              "rawName": "getWithDns()",
              "expectedReason": "",
              "className": "okhttp.testbed.network.SniOverrideTest",
              "status": "passed",
              "timeSeconds": 0.3,
              "message": "",
              "detail": ""
            }
          ]
        }
      ],
      "clientHello": {
        "task": "networkTest",
        "recordedAt": "2026-08-16T17:21:39Z",
        "javaVersion": "11.0.32",
        "javaVendor": "OpenJDK 64-Bit Server VM",
        "observed": {
          "howsmyssl": {
            "given_cipher_suites": [
              "TLS_AES_128_GCM_SHA256",
              "TLS_AES_256_GCM_SHA384",
              "TLS_CHACHA20_POLY1305_SHA256",
              "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
              "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
              "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
              "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
              "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
              "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
              "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
              "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"
            ],
            "given_named_groups": [
              "x25519",
              "secp256r1",
              "secp384r1",
              "secp521r1",
              "x448",
              "ffdhe2048",
              "ffdhe3072",
              "ffdhe4096",
              "ffdhe6144",
              "ffdhe8192"
            ],
            "given_signature_algorithms": [
              "ecdsa_secp256r1_sha256",
              "ecdsa_secp384r1_sha384",
              "ecdsa_secp521r1_sha512",
              "rsa_pss_rsae_sha256",
              "rsa_pss_rsae_sha384",
              "rsa_pss_rsae_sha512",
              "rsa_pss_pss_sha256",
              "rsa_pss_pss_sha384",
              "rsa_pss_pss_sha512",
              "rsa_pkcs1_sha256",
              "rsa_pkcs1_sha384",
              "rsa_pkcs1_sha512",
              "Unknown signature scheme: 0x0402",
              "Unknown signature scheme: 0x0303",
              "Unknown signature scheme: 0x0301",
              "Unknown signature scheme: 0x0302"
            ],
            "post_quantum_key_agreement": false,
            "ephemeral_keys_supported": true,
            "session_ticket_supported": false,
            "tls_compression_supported": false,
            "unknown_cipher_suite_supported": false,
            "beast_vuln": false,
            "able_to_detect_n_minus_one_splitting": false,
            "insecure_cipher_suites": {},
            "tls_version": "TLS 1.3",
            "rating": "Improvable"
          }
        }
      },
      "dohMatrix": {
        "task": "networkTest",
        "recordedAt": "2026-08-16T17:21:53Z",
        "names": {
          "www.google.com": {
            "cloudflare": {
              "outcome": "resolved",
              "addresses": [
                "142.251.155.119",
                "142.251.156.119",
                "142.251.152.119",
                "142.251.154.119",
                "142.251.150.119",
                "142.251.153.119",
                "142.251.151.119",
                "142.251.157.119",
                "2001:4860:4829:7700:0:0:0:0",
                "2001:4860:482b:7700:0:0:0:0",
                "2001:4860:482c:7700:0:0:0:0",
                "2001:4860:482d:7700:0:0:0:0",
                "2001:4860:482a:7700:0:0:0:0",
                "2001:4860:4826:7700:0:0:0:0",
                "2001:4860:4827:7700:0:0:0:0",
                "2001:4860:4828:7700:0:0:0:0"
              ],
              "detail": ""
            },
            "google": {
              "outcome": "resolved",
              "addresses": [
                "142.251.151.119",
                "142.251.154.119",
                "142.251.152.119",
                "142.251.156.119",
                "142.251.155.119",
                "142.251.150.119",
                "142.251.153.119",
                "142.251.157.119",
                "2001:4860:4827:7700:0:0:0:0",
                "2001:4860:4829:7700:0:0:0:0",
                "2001:4860:482a:7700:0:0:0:0",
                "2001:4860:4828:7700:0:0:0:0",
                "2001:4860:482c:7700:0:0:0:0",
                "2001:4860:482d:7700:0:0:0:0",
                "2001:4860:4826:7700:0:0:0:0",
                "2001:4860:482b:7700:0:0:0:0"
              ],
              "detail": ""
            },
            "quad9": {
              "outcome": "resolved",
              "addresses": [
                "2001:4860:482b:7700:0:0:0:0",
                "2001:4860:482c:7700:0:0:0:0",
                "2001:4860:4827:7700:0:0:0:0",
                "2001:4860:482a:7700:0:0:0:0",
                "2001:4860:4828:7700:0:0:0:0",
                "2001:4860:482d:7700:0:0:0:0",
                "2001:4860:4829:7700:0:0:0:0",
                "2001:4860:4826:7700:0:0:0:0",
                "142.251.156.119",
                "142.251.150.119",
                "142.251.154.119",
                "142.251.152.119",
                "142.251.151.119",
                "142.251.153.119",
                "142.251.155.119",
                "142.251.157.119"
              ],
              "detail": ""
            },
            "adguard": {
              "outcome": "resolved",
              "addresses": [
                "142.251.151.119",
                "142.251.152.119",
                "142.251.156.119",
                "142.251.150.119",
                "142.251.154.119",
                "142.251.157.119",
                "142.251.155.119",
                "142.251.153.119",
                "2001:4860:4827:7700:0:0:0:0",
                "2001:4860:482c:7700:0:0:0:0",
                "2001:4860:482d:7700:0:0:0:0",
                "2001:4860:4829:7700:0:0:0:0",
                "2001:4860:482a:7700:0:0:0:0",
                "2001:4860:4826:7700:0:0:0:0",
                "2001:4860:482b:7700:0:0:0:0",
                "2001:4860:4828:7700:0:0:0:0"
              ],
              "detail": ""
            }
          },
          "no-such-name.invalid": {
            "cloudflare": {
              "outcome": "unresolved",
              "addresses": [],
              "detail": ""
            },
            "google": {
              "outcome": "unresolved",
              "addresses": [],
              "detail": ""
            },
            "quad9": {
              "outcome": "unresolved",
              "addresses": [],
              "detail": ""
            },
            "adguard": {
              "outcome": "unresolved",
              "addresses": [],
              "detail": ""
            }
          },
          "doubleclick.net": {
            "cloudflare": {
              "outcome": "resolved",
              "addresses": [
                "142.251.163.138",
                "142.251.163.101",
                "142.251.163.102",
                "142.251.163.100",
                "142.251.163.113",
                "142.251.163.139",
                "2607:f8b0:4004:c07:0:0:0:66",
                "2607:f8b0:4004:c07:0:0:0:8b",
                "2607:f8b0:4004:c07:0:0:0:64",
                "2607:f8b0:4004:c07:0:0:0:8a"
              ],
              "detail": ""
            },
            "google": {
              "outcome": "resolved",
              "addresses": [
                "2607:f8b0:4004:c07:0:0:0:64",
                "2607:f8b0:4004:c07:0:0:0:71",
                "2607:f8b0:4004:c07:0:0:0:66",
                "2607:f8b0:4004:c07:0:0:0:65",
                "172.253.62.101",
                "172.253.62.102",
                "172.253.62.100",
                "172.253.62.139",
                "172.253.62.113",
                "172.253.62.138"
              ],
              "detail": ""
            },
            "quad9": {
              "outcome": "resolved",
              "addresses": [
                "142.251.167.113",
                "142.251.167.139",
                "142.251.167.102",
                "142.251.167.100",
                "142.251.167.101",
                "142.251.167.138",
                "2607:f8b0:4004:c1d:0:0:0:71",
                "2607:f8b0:4004:c1d:0:0:0:64",
                "2607:f8b0:4004:c1d:0:0:0:66",
                "2607:f8b0:4004:c1d:0:0:0:8b"
              ],
              "detail": ""
            },
            "adguard": {
              "outcome": "sinkholed",
              "addresses": [
                "0:0:0:0:0:0:0:0",
                "0.0.0.0"
              ],
              "detail": ""
            }
          },
          "www.internetbadguys.com": {
            "cloudflare": {
              "outcome": "resolved",
              "addresses": [
                "146.112.59.12"
              ],
              "detail": ""
            },
            "google": {
              "outcome": "resolved",
              "addresses": [
                "146.112.59.12"
              ],
              "detail": ""
            },
            "quad9": {
              "outcome": "unresolved",
              "addresses": [],
              "detail": ""
            },
            "adguard": {
              "outcome": "resolved",
              "addresses": [
                "146.112.59.12"
              ],
              "detail": ""
            }
          },
          "cloudflare-ech.com": {
            "cloudflare": {
              "outcome": "resolved",
              "addresses": [
                "104.18.11.118",
                "104.18.10.118",
                "2606:4700:0:0:0:0:6812:a76",
                "2606:4700:0:0:0:0:6812:b76"
              ],
              "detail": ""
            },
            "google": {
              "outcome": "resolved",
              "addresses": [
                "104.18.11.118",
                "104.18.10.118",
                "2606:4700:0:0:0:0:6812:b76",
                "2606:4700:0:0:0:0:6812:a76"
              ],
              "detail": ""
            },
            "quad9": {
              "outcome": "resolved",
              "addresses": [
                "2606:4700:0:0:0:0:6812:a76",
                "2606:4700:0:0:0:0:6812:b76",
                "104.18.10.118",
                "104.18.11.118"
              ],
              "detail": ""
            },
            "adguard": {
              "outcome": "resolved",
              "addresses": [
                "104.18.10.118",
                "104.18.11.118",
                "2606:4700:0:0:0:0:6812:a76",
                "2606:4700:0:0:0:0:6812:b76"
              ],
              "detail": ""
            }
          },
          "sigok.ippacket.stream": {
            "cloudflare": {
              "outcome": "resolved",
              "addresses": [
                "2a01:4f8:13b:2048:0:0:0:113",
                "195.201.14.36"
              ],
              "detail": ""
            },
            "google": {
              "outcome": "resolved",
              "addresses": [
                "195.201.14.36",
                "2a01:4f8:13b:2048:0:0:0:113"
              ],
              "detail": ""
            },
            "quad9": {
              "outcome": "resolved",
              "addresses": [
                "2a01:4f8:13b:2048:0:0:0:113",
                "195.201.14.36"
              ],
              "detail": ""
            },
            "adguard": {
              "outcome": "resolved",
              "addresses": [
                "195.201.14.36",
                "2a01:4f8:13b:2048:0:0:0:113"
              ],
              "detail": ""
            }
          },
          "sigfail.ippacket.stream": {
            "cloudflare": {
              "outcome": "unresolved",
              "addresses": [],
              "detail": "DNS server failure"
            },
            "google": {
              "outcome": "unresolved",
              "addresses": [],
              "detail": "DNS server failure"
            },
            "quad9": {
              "outcome": "unresolved",
              "addresses": [],
              "detail": "DNS server failure"
            },
            "adguard": {
              "outcome": "unresolved",
              "addresses": [],
              "detail": "DNS server failure"
            }
          }
        }
      },
      "altSvc": {
        "task": "networkTest",
        "recordedAt": "2026-08-16T17:21:38Z",
        "origins": {
          "cloudflare-quic.com": {
            "protocol": "h2",
            "altSvc": "h3=\":443\"; ma=86400",
            "advertisesH3": true
          },
          "quic.nginx.org": {
            "protocol": "h2",
            "altSvc": "h3=\":443\"; ma=86400",
            "advertisesH3": true
          },
          "http3.is": {
            "protocol": "h2",
            "altSvc": "h3=\":443\";ma=86400,h3-29=\":443\";ma=86400,h3-27=\":443\";ma=86400",
            "advertisesH3": true
          }
        }
      },
      "tlsPolicy": [
        {
          "platform": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "task": "test",
          "recordedAt": "2026-08-17T03:14:21Z",
          "javaVersion": "17.0.20",
          "javaVendor": "OpenJDK 64-Bit Server VM",
          "checks": {
            "Certificate Transparency": {
              "accepted": true,
              "detail": "HTTP 200; private CA, no SCT"
            },
            "Revocation": {
              "accepted": true,
              "detail": "HTTP 200"
            },
            "Pinning": {
              "accepted": false,
              "detail": "SSLPeerUnverifiedException: Certificate pinning failure!\n  Peer certificate chain:\n    sha256/5/trc1uCWB7FL/Ou0Oo2udUTvl9Q1l6ST6zbSMFS4dU=: CN=*.badssl.com\n    sha256/nWN7PSep5XDQdge5zK24CnCRXHr3KvzhKEGxsdqCX9E=: CN=YR2, O=Let's Encrypt, C=US\n    sha256/fk6IOKit1ild5647BH06ujSIq5XbCgqlbYl6ANhhi88=: CN=Root YR, O=ISRG, C=US\n    sha256/C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=: CN=ISRG Root X1, O=Internet Security Research Group, C=US\n  Pinned certificates for pinning-test.badssl.com:\n    sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
            }
          }
        },
        {
          "platform": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "task": "test",
          "recordedAt": "2026-08-17T03:14:29Z",
          "javaVersion": "21.0.12",
          "javaVendor": "OpenJDK 64-Bit Server VM",
          "checks": {
            "Certificate Transparency": {
              "accepted": true,
              "detail": "HTTP 200; private CA, no SCT"
            },
            "Revocation": {
              "accepted": true,
              "detail": "HTTP 200"
            },
            "Pinning": {
              "accepted": false,
              "detail": "SSLPeerUnverifiedException: Certificate pinning failure!\n  Peer certificate chain:\n    sha256/5/trc1uCWB7FL/Ou0Oo2udUTvl9Q1l6ST6zbSMFS4dU=: CN=*.badssl.com\n    sha256/nWN7PSep5XDQdge5zK24CnCRXHr3KvzhKEGxsdqCX9E=: CN=YR2, O=Let's Encrypt, C=US\n    sha256/fk6IOKit1ild5647BH06ujSIq5XbCgqlbYl6ANhhi88=: CN=Root YR, O=ISRG, C=US\n    sha256/C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=: CN=ISRG Root X1, O=Internet Security Research Group, C=US\n  Pinned certificates for pinning-test.badssl.com:\n    sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
            }
          }
        },
        {
          "platform": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "task": "test",
          "recordedAt": "2026-08-17T03:14:22Z",
          "javaVersion": "25.0.4",
          "javaVendor": "OpenJDK 64-Bit Server VM",
          "checks": {
            "Certificate Transparency": {
              "accepted": true,
              "detail": "HTTP 200; private CA, no SCT"
            },
            "Revocation": {
              "accepted": true,
              "detail": "HTTP 200"
            },
            "Pinning": {
              "accepted": false,
              "detail": "SSLPeerUnverifiedException: Certificate pinning failure!\n  Peer certificate chain:\n    sha256/5/trc1uCWB7FL/Ou0Oo2udUTvl9Q1l6ST6zbSMFS4dU=: CN=*.badssl.com\n    sha256/nWN7PSep5XDQdge5zK24CnCRXHr3KvzhKEGxsdqCX9E=: CN=YR2, O=Let's Encrypt, C=US\n    sha256/fk6IOKit1ild5647BH06ujSIq5XbCgqlbYl6ANhhi88=: CN=Root YR, O=ISRG, C=US\n    sha256/C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=: CN=ISRG Root X1, O=Internet Security Research Group, C=US\n  Pinned certificates for pinning-test.badssl.com:\n    sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
            }
          }
        },
        {
          "platform": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "task": "networkTest",
          "recordedAt": "2026-08-16T17:22:16Z",
          "javaVersion": "11.0.32",
          "javaVendor": "OpenJDK 64-Bit Server VM",
          "checks": {
            "Revocation": {
              "accepted": true,
              "detail": "HTTP 200"
            },
            "Pinning": {
              "accepted": false,
              "detail": "SSLPeerUnverifiedException: Certificate pinning failure!\n  Peer certificate chain:\n    sha256/5/trc1uCWB7FL/Ou0Oo2udUTvl9Q1l6ST6zbSMFS4dU=: CN=*.badssl.com\n    sha256/nWN7PSep5XDQdge5zK24CnCRXHr3KvzhKEGxsdqCX9E=: CN=YR2, O=Let's Encrypt, C=US\n    sha256/fk6IOKit1ild5647BH06ujSIq5XbCgqlbYl6ANhhi88=: CN=Root YR, O=ISRG, C=US\n    sha256/C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=: CN=ISRG Root X1, O=Internet Security Research Group, C=US\n  Pinned certificates for pinning-test.badssl.com:\n    sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
            }
          }
        },
        {
          "platform": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "task": "networkTest",
          "recordedAt": "2026-08-16T17:22:26Z",
          "javaVersion": "1.8.0_502",
          "javaVendor": "OpenJDK 64-Bit Server VM",
          "checks": {
            "Revocation": {
              "accepted": true,
              "detail": "HTTP 200"
            },
            "Pinning": {
              "accepted": false,
              "detail": "SSLPeerUnverifiedException: Certificate pinning failure!\n  Peer certificate chain:\n    sha256/5/trc1uCWB7FL/Ou0Oo2udUTvl9Q1l6ST6zbSMFS4dU=: CN=*.badssl.com\n    sha256/nWN7PSep5XDQdge5zK24CnCRXHr3KvzhKEGxsdqCX9E=: CN=YR2, O=Let's Encrypt, C=US\n    sha256/fk6IOKit1ild5647BH06ujSIq5XbCgqlbYl6ANhhi88=: CN=Root YR, O=ISRG, C=US\n    sha256/C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=: CN=ISRG Root X1, O=Internet Security Research Group, C=US\n  Pinned certificates for pinning-test.badssl.com:\n    sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
            }
          }
        }
      ],
      "echResults": [
        {
          "suite": "EchConscryptTest",
          "case": "defoIeAcceptsAnEncryptedClientHello",
          "server": "defo.ie",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "tlsEchDevAcceptsAnEncryptedClientHello",
          "server": "tls-ech.dev",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "cloudflareAcceptsAnEncryptedClientHello",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "okHttpResolvesTheConfigListFromDns",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchTest",
          "case": "cloudflareUsesEch JDK",
          "server": "cloudflare-ech.com",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "cloudflareUsesEch CONSCRYPT_ECH",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnTlsEchDev JDK",
          "server": "tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnTlsEchDev CONSCRYPT_ECH",
          "server": "tls-ech.dev",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnDefoIe JDK",
          "server": "defo.ie",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnDefoIe CONSCRYPT_ECH",
          "server": "defo.ie",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsRetriedOnStaleTlsEchDev JDK",
          "server": "stale.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            },
            {
              "source": "retry",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "tlsIsNotUsedOnTls12TlsEchDev JDK",
          "server": "tls12.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            },
            {
              "source": "retry",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnWrongTlsEchDev JDK",
          "server": "wrong.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnWrongTlsEchDev CONSCRYPT_ECH",
          "server": "wrong.tls-ech.dev",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 11.0.32 \u00b7 amd64",
          "variant": "JDK 11",
          "task": "echTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "defoIeAcceptsAnEncryptedClientHello",
          "server": "defo.ie",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "tlsEchDevAcceptsAnEncryptedClientHello",
          "server": "tls-ech.dev",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "cloudflareAcceptsAnEncryptedClientHello",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "okHttpResolvesTheConfigListFromDns",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchTest",
          "case": "cloudflareUsesEch JDK",
          "server": "cloudflare-ech.com",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "cloudflareUsesEch CONSCRYPT_ECH",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnTlsEchDev JDK",
          "server": "tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnTlsEchDev CONSCRYPT_ECH",
          "server": "tls-ech.dev",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnDefoIe JDK",
          "server": "defo.ie",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnDefoIe CONSCRYPT_ECH",
          "server": "defo.ie",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsRetriedOnStaleTlsEchDev JDK",
          "server": "stale.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            },
            {
              "source": "retry",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "tlsIsNotUsedOnTls12TlsEchDev JDK",
          "server": "tls12.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            },
            {
              "source": "retry",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnWrongTlsEchDev JDK",
          "server": "wrong.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnWrongTlsEchDev CONSCRYPT_ECH",
          "server": "wrong.tls-ech.dev",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 17.0.20 \u00b7 amd64",
          "variant": "JDK 17",
          "task": "echTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "defoIeAcceptsAnEncryptedClientHello",
          "server": "defo.ie",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "tlsEchDevAcceptsAnEncryptedClientHello",
          "server": "tls-ech.dev",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "cloudflareAcceptsAnEncryptedClientHello",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "okHttpResolvesTheConfigListFromDns",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchTest",
          "case": "cloudflareUsesEch JDK",
          "server": "cloudflare-ech.com",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "cloudflareUsesEch CONSCRYPT_ECH",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnTlsEchDev JDK",
          "server": "tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnTlsEchDev CONSCRYPT_ECH",
          "server": "tls-ech.dev",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnDefoIe JDK",
          "server": "defo.ie",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnDefoIe CONSCRYPT_ECH",
          "server": "defo.ie",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsRetriedOnStaleTlsEchDev JDK",
          "server": "stale.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            },
            {
              "source": "retry",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "tlsIsNotUsedOnTls12TlsEchDev JDK",
          "server": "tls12.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            },
            {
              "source": "retry",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnWrongTlsEchDev JDK",
          "server": "wrong.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnWrongTlsEchDev CONSCRYPT_ECH",
          "server": "wrong.tls-ech.dev",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 21.0.12 \u00b7 amd64",
          "variant": "JDK 21",
          "task": "echTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "defoIeAcceptsAnEncryptedClientHello",
          "server": "defo.ie",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "tlsEchDevAcceptsAnEncryptedClientHello",
          "server": "tls-ech.dev",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "cloudflareAcceptsAnEncryptedClientHello",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "okHttpResolvesTheConfigListFromDns",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchTest",
          "case": "cloudflareUsesEch JDK",
          "server": "cloudflare-ech.com",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "cloudflareUsesEch CONSCRYPT_ECH",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnTlsEchDev JDK",
          "server": "tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnTlsEchDev CONSCRYPT_ECH",
          "server": "tls-ech.dev",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnDefoIe JDK",
          "server": "defo.ie",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnDefoIe CONSCRYPT_ECH",
          "server": "defo.ie",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsRetriedOnStaleTlsEchDev JDK",
          "server": "stale.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            },
            {
              "source": "retry",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "tlsIsNotUsedOnTls12TlsEchDev JDK",
          "server": "tls12.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            },
            {
              "source": "retry",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnWrongTlsEchDev JDK",
          "server": "wrong.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnWrongTlsEchDev CONSCRYPT_ECH",
          "server": "wrong.tls-ech.dev",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Eclipse Adoptium JDK 25.0.4 \u00b7 amd64",
          "variant": "JDK 25",
          "task": "echTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "defoIeAcceptsAnEncryptedClientHello",
          "server": "defo.ie",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "tlsEchDevAcceptsAnEncryptedClientHello",
          "server": "tls-ech.dev",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "cloudflareAcceptsAnEncryptedClientHello",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchConscryptTest",
          "case": "okHttpResolvesTheConfigListFromDns",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_DIRECT",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echConscryptTest"
        },
        {
          "suite": "EchTest",
          "case": "cloudflareUsesEch JDK",
          "server": "cloudflare-ech.com",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "cloudflareUsesEch CONSCRYPT_ECH",
          "server": "cloudflare-ech.com",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEX+DQBB/QAgACDOd4OjIKhHuX5odNlGdKSapSV3boeMtO2vuvg+KTUyFAAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA="
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnTlsEchDev JDK",
          "server": "tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnTlsEchDev CONSCRYPT_ECH",
          "server": "tls-ech.dev",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnDefoIe JDK",
          "server": "defo.ie",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnDefoIe CONSCRYPT_ECH",
          "server": "defo.ie",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AMD+DQA8MAAgACCLG9y51YVvUXTx1PFGB2cVwRawcKxLJWJAu/Xy1G2KUQAEAAEAAQANY292ZXIuZGVmby5pZQAA/g0APDUAIAAgIvqV6aueK+t7DCj4nf5NV/F+RlSy2M7NxgX0vC8JpgYABAABAAEADWNvdmVyLmRlZm8uaWUAAP4NADwSACAAIDpAs5dX6mODm8eqUt9AcN1DcliBfoAKaOeUOuXppgQwAAQAAQABAA1jb3Zlci5kZWZvLmllAAA="
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsRetriedOnStaleTlsEchDev JDK",
          "server": "stale.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            },
            {
              "source": "retry",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "tlsIsNotUsedOnTls12TlsEchDev JDK",
          "server": "tls12.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            },
            {
              "source": "retry",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnWrongTlsEchDev JDK",
          "server": "wrong.tls-ech.dev",
          "platform": "JDK",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echTest"
        },
        {
          "suite": "EchTest",
          "case": "echIsAcceptedOnWrongTlsEchDev CONSCRYPT_ECH",
          "server": "wrong.tls-ech.dev",
          "platform": "CONSCRYPT_ECH",
          "attempts": [
            {
              "source": "dns",
              "echConfigList": "AEn+DQBFKwAgACABWIHUGj4u+PIggYXcR5JF0gYk3dCRioBW8uJq9H4mKAAIAAEAAQABAANAEnB1YmxpYy50bHMtZWNoLmRldgAA"
            }
          ],
          "platformDescription": "Temurin JDK 1.8.0_502 \u00b7 amd64",
          "variant": "JDK 8",
          "task": "echTest"
        }
      ],
      "status": "finding",
      "passed": 592,
      "failed": 5,
      "expected": 44,
      "skipped": 26,
      "timeSeconds": 601.5
    }
  ],
  "endpoints": [
    {
      "id": "adguard-doh",
      "server": "dns.adguard-dns.com/dns-query",
      "operator": "AdGuard",
      "target": "https://dns.adguard-dns.com/dns-query",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "badssl-client",
      "server": "client.badssl.com",
      "operator": "badssl.com",
      "target": "client.badssl.com",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "badssl-pinning",
      "server": "pinning-test.badssl.com",
      "operator": "badssl.com",
      "target": "https://pinning-test.badssl.com/",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "badssl-revoked",
      "server": "revoked.badssl.com",
      "operator": "badssl.com",
      "target": "revoked.badssl.com",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "cloudflare-dns",
      "server": "cloudflare-dns.com",
      "operator": "Cloudflare",
      "target": "https://cloudflare-dns.com/cdn-cgi/trace",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "cloudflare-doh",
      "server": "1.1.1.1/dns-query",
      "operator": "Cloudflare",
      "target": "https://1.1.1.1/dns-query",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:29Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "cloudflare-ech",
      "server": "cloudflare-ech.com",
      "operator": "Cloudflare",
      "target": "https://cloudflare-ech.com/cdn-cgi/trace",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:29Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "cloudflare-quic",
      "server": "cloudflare-quic.com",
      "operator": "Cloudflare",
      "target": "https://cloudflare-quic.com/",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "cloudflare-sni",
      "server": "sni.cloudflaressl.com",
      "operator": "Cloudflare",
      "target": "sni.cloudflaressl.com",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "cloudflare-www",
      "server": "cloudflare.com",
      "operator": "Cloudflare",
      "target": "https://cloudflare.com/robots.txt",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "defo-ie",
      "server": "defo.ie",
      "operator": "the DEfO project",
      "target": "https://defo.ie/ech-check.php",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:29Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "google",
      "server": "www.google.com",
      "operator": "Google",
      "target": "https://www.google.com/robots.txt",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "google-doh",
      "server": "dns.google/dns-query",
      "operator": "Google",
      "target": "https://dns.google/dns-query",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "howsmyssl",
      "server": "www.howsmyssl.com",
      "operator": "Jeff Hodges",
      "target": "https://www.howsmyssl.com/a/check",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "http3-is",
      "server": "http3.is",
      "operator": "the http3.is authors",
      "target": "https://http3.is/",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "letsencrypt",
      "server": "valid-isrgrootx1.letsencrypt.org",
      "operator": "Let's Encrypt",
      "target": "https://valid-isrgrootx1.letsencrypt.org/robots.txt",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "nghttp2",
      "server": "nghttp2.org",
      "operator": "the nghttp2 project",
      "target": "https://nghttp2.org/httpbin/get",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "nginx-quic",
      "server": "quic.nginx.org",
      "operator": "F5 NGINX",
      "target": "https://quic.nginx.org/",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "quad9-doh",
      "server": "dns.quad9.net/dns-query",
      "operator": "Quad9",
      "target": "https://dns.quad9.net/dns-query",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "test-ipv6",
      "server": "test-ipv6.com",
      "operator": "Jason Fesler",
      "target": "https://ds.test-ipv6.com/",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "testserver-host",
      "server": "testserver.host",
      "operator": "HTTP Toolkit",
      "target": "https://testserver.host/status/200",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:18Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    },
    {
      "id": "tls-ech-dev",
      "server": "tls-ech.dev",
      "operator": "Dennis Jackson",
      "target": "https://tls-ech.dev/",
      "state": "up",
      "detail": "",
      "probedAt": "2026-08-16T17:22:29Z",
      "lastReachableAt": "2026-08-17T03:15:06Z"
    }
  ]
}
