{
 "versions": {
  "recorded_utc": "2026-10-04T10:15:39Z",
  "platform": "Linux-7.0.0-30-generic-x86_64-with-glibc2.43",
  "pythons": [
   {
    "python": "3.14.4",
    "openssl": "OpenSSL 3.5.5 27 Jan 2026",
    "packages": {
     "requests": "2.34.2",
     "urllib3": "2.8.0",
     "httpx": "0.28.1",
     "httpcore": "1.0.9",
     "h11": "0.16.0",
     "certifi": "2026.7.22"
    }
   },
   {
    "python": "3.12.3",
    "openssl": "OpenSSL 3.0.13 30 Jan 2024",
    "packages": {
     "requests": "2.34.2",
     "urllib3": "2.8.0",
     "httpx": "0.28.1",
     "httpcore": "1.0.9",
     "h11": "0.16.0",
     "certifi": "2026.7.22"
    }
   },
   {
    "python": "3.11.3",
    "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
    "packages": {
     "requests": "2.34.2",
     "urllib3": "2.8.0",
     "httpx": "0.28.1",
     "httpcore": "1.0.9",
     "h11": "0.16.0",
     "certifi": "2026.7.22"
    }
   }
  ],
  "openssl_cli": "OpenSSL 3.5.5 27 Jan 2026 (Library: OpenSSL 3.5.5 27 Jan 2026)",
  "node": {
   "node": "v24.20.0",
   "openssl": "3.5.7",
   "undici": "7.29.0"
  }
 },
 "ports": {
  "plain400": 18400,
  "connect": 18480,
  "http_target": 18000,
  "tls_target": 18443
 },
 "cases": [
  {
   "id": "case1-proxy-hop",
   "what": "https:// proxy URL, proxy port answers in plaintext (plain-400 listener)",
   "proxy": "https://127.0.0.1:18400",
   "target": "https://127.0.0.1:18443/",
   "clients": {
    "curl": [
     {
      "version": "curl 8.18.0 (x86_64-pc-linux-gnu) libcurl/8.18.0 OpenSSL/3.5.5 zlib/1.3.1 brotli/1.2.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.68.0 librtmp/2.3 mit-krb5/1.22.1 OpenLDAP/2.6.10",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     },
     {
      "version": "curl 8.7.1 (x86_64-pc-linux-gnu) libcurl/8.7.1 OpenSSL/3.2.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.27.0 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.0 nghttp2/1.60.0 nghttp3/1.2.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* TLSv1.3 (OUT), TLS alert, record overflow (534):",
       "* OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long",
       "* Closing connection",
       "curl: (35) OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long"
      ]
     },
     {
      "version": "curl 8.12.1 (x86_64-pc-linux-gnu) libcurl/8.12.1 OpenSSL/3.4.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.34.4 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.7.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A0000C6:SSL routines::packet length too long",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* TLSv1.3 (OUT), TLS alert, record overflow (534):",
       "* TLS connect error: error:0A0000C6:SSL routines::packet length too long",
       "curl: (35) TLS connect error: error:0A0000C6:SSL routines::packet length too long"
      ]
     },
     {
      "version": "curl 8.17.0 (x86_64-pc-linux-gnu) libcurl/8.17.0 OpenSSL/3.6.0 zlib/1.3.1 brotli/1.2.0 zstd/1.5.7 c-ares/1.34.5 libidn2/2.3.8 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.68.0 nghttp3/1.12.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     },
     {
      "version": "curl 8.22.0 (x86_64-pc-linux-gnu) libcurl/8.22.0 OpenSSL/4.0.2 zlib/1.3.2 brotli/1.2.0 zstd/1.5.7 c-ares/1.34.8 libidn2/2.3.8 libpsl/0.23.3 libssh2/1.11.1 nghttp2/1.70.0 ngtcp2/1.25.0 nghttp3/1.18.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     }
    ],
    "curl_env_HTTPS_PROXY": {
     "exit": 35,
     "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
    },
    "requests": [
     {
      "python": "3.14.4",
      "openssl": "OpenSSL 3.5.5 27 Jan 2026",
      "ok": false,
      "raised": "requests.exceptions.ProxyError: HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))",
      "urllib3_reason_type": "ProxyError",
      "chain": [
       {
        "type": "requests.exceptions.ProxyError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))"
       },
       {
        "type": "urllib3.exceptions.ProxyError",
        "message": "('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       }
      ]
     },
     {
      "python": "3.12.3",
      "openssl": "OpenSSL 3.0.13 30 Jan 2024",
      "ok": false,
      "raised": "requests.exceptions.ProxyError: HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)'))))",
      "urllib3_reason_type": "ProxyError",
      "chain": [
       {
        "type": "requests.exceptions.ProxyError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)'))))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)'))))"
       },
       {
        "type": "urllib3.exceptions.ProxyError",
        "message": "('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       }
      ]
     },
     {
      "python": "3.11.3",
      "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
      "ok": false,
      "raised": "requests.exceptions.ProxyError: HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)'))))",
      "urllib3_reason_type": "ProxyError",
      "chain": [
       {
        "type": "requests.exceptions.ProxyError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)'))))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)'))))"
       },
       {
        "type": "urllib3.exceptions.ProxyError",
        "message": "('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       }
      ]
     }
    ],
    "requests_env_HTTPS_PROXY": {
     "ok": false,
     "raised": "requests.exceptions.ProxyError: HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))",
     "urllib3_reason_type": "ProxyError",
     "chain": [
      {
       "type": "requests.exceptions.ProxyError",
       "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))"
      },
      {
       "type": "urllib3.exceptions.MaxRetryError",
       "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))"
      },
      {
       "type": "urllib3.exceptions.ProxyError",
       "message": "('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))"
      },
      {
       "type": "urllib3.exceptions.SSLError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      }
     ]
    },
    "httpx": [
     {
      "python": "3.14.4",
      "openssl": "OpenSSL 3.5.5 27 Jan 2026",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       }
      ]
     },
     {
      "python": "3.12.3",
      "openssl": "OpenSSL 3.0.13 30 Jan 2024",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       }
      ]
     },
     {
      "python": "3.11.3",
      "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       }
      ]
     }
    ],
    "httpx_env_HTTPS_PROXY": {
     "ok": false,
     "raised": "httpx.ConnectError: [SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)",
     "chain": [
      {
       "type": "httpx.ConnectError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      },
      {
       "type": "httpcore.ConnectError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      },
      {
       "type": "ssl.SSLError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      }
     ]
    },
    "httpx_debug_log": [
     "httpcore.connection start_tls.started ssl_context=<ssl.SSLContext> server_hostname='127.0.0.1' timeout=10",
     "httpcore.connection start_tls.failed exception=ConnectError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))",
     "raised ConnectError: [SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
    ],
    "node_fetch": {
     "ok": false,
     "chain": [
      {
       "name": "TypeError",
       "message": "fetch failed"
      },
      {
       "name": "Error",
       "code": "ERR_SSL_WRONG_VERSION_NUMBER",
       "message": "400EEE37BB7E0000:error:0A00010B:SSL routines:tls_validate_record_header:wrong version number:../deps/openssl/openssl/ssl/record/methods/tlsany_meth.c:77:\n"
      }
     ]
    },
    "playwright": {
     "playwright": "1.63.0",
     "chromium": "153.0.8010.12",
     "requestfailed": [
      "net::ERR_PROXY_CONNECTION_FAILED"
     ],
     "ok": false,
     "message": "page.goto: net::ERR_PROXY_CONNECTION_FAILED at https://127.0.0.1:18443/"
    }
   },
   "connect_proxy_log": []
  },
  {
   "id": "case1-proxy-hop-connect-proxy",
   "what": "https:// proxy URL against the working plain-HTTP CONNECT proxy",
   "proxy": "https://127.0.0.1:18480",
   "target": "https://127.0.0.1:18443/",
   "clients": {
    "curl": [
     {
      "version": "curl 8.18.0 (x86_64-pc-linux-gnu) libcurl/8.18.0 OpenSSL/3.5.5 zlib/1.3.1 brotli/1.2.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.68.0 librtmp/2.3 mit-krb5/1.22.1 OpenLDAP/2.6.10",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     },
     {
      "version": "curl 8.7.1 (x86_64-pc-linux-gnu) libcurl/8.7.1 OpenSSL/3.2.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.27.0 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.0 nghttp2/1.60.0 nghttp3/1.2.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* TLSv1.3 (OUT), TLS alert, record overflow (534):",
       "* OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long",
       "* Closing connection",
       "curl: (35) OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long"
      ]
     },
     {
      "version": "curl 8.12.1 (x86_64-pc-linux-gnu) libcurl/8.12.1 OpenSSL/3.4.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.34.4 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.7.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A0000C6:SSL routines::packet length too long",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* TLSv1.3 (OUT), TLS alert, record overflow (534):",
       "* TLS connect error: error:0A0000C6:SSL routines::packet length too long",
       "curl: (35) TLS connect error: error:0A0000C6:SSL routines::packet length too long"
      ]
     },
     {
      "version": "curl 8.17.0 (x86_64-pc-linux-gnu) libcurl/8.17.0 OpenSSL/3.6.0 zlib/1.3.1 brotli/1.2.0 zstd/1.5.7 c-ares/1.34.5 libidn2/2.3.8 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.68.0 nghttp3/1.12.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     },
     {
      "version": "curl 8.22.0 (x86_64-pc-linux-gnu) libcurl/8.22.0 OpenSSL/4.0.2 zlib/1.3.2 brotli/1.2.0 zstd/1.5.7 c-ares/1.34.8 libidn2/2.3.8 libpsl/0.23.3 libssh2/1.11.1 nghttp2/1.70.0 ngtcp2/1.25.0 nghttp3/1.18.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     }
    ],
    "curl_env_HTTPS_PROXY": {
     "exit": 35,
     "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
    },
    "requests": [
     {
      "python": "3.14.4",
      "openssl": "OpenSSL 3.5.5 27 Jan 2026",
      "ok": false,
      "raised": "requests.exceptions.ProxyError: HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))",
      "urllib3_reason_type": "ProxyError",
      "chain": [
       {
        "type": "requests.exceptions.ProxyError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))"
       },
       {
        "type": "urllib3.exceptions.ProxyError",
        "message": "('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       }
      ]
     },
     {
      "python": "3.12.3",
      "openssl": "OpenSSL 3.0.13 30 Jan 2024",
      "ok": false,
      "raised": "requests.exceptions.ProxyError: HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)'))))",
      "urllib3_reason_type": "ProxyError",
      "chain": [
       {
        "type": "requests.exceptions.ProxyError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)'))))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)'))))"
       },
       {
        "type": "urllib3.exceptions.ProxyError",
        "message": "('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       }
      ]
     },
     {
      "python": "3.11.3",
      "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
      "ok": false,
      "raised": "requests.exceptions.ProxyError: HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)'))))",
      "urllib3_reason_type": "ProxyError",
      "chain": [
       {
        "type": "requests.exceptions.ProxyError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)'))))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)'))))"
       },
       {
        "type": "urllib3.exceptions.ProxyError",
        "message": "('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       }
      ]
     }
    ],
    "requests_env_HTTPS_PROXY": {
     "ok": false,
     "raised": "requests.exceptions.ProxyError: HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))",
     "urllib3_reason_type": "ProxyError",
     "chain": [
      {
       "type": "requests.exceptions.ProxyError",
       "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))"
      },
      {
       "type": "urllib3.exceptions.MaxRetryError",
       "message": "HTTPSConnectionPool(host='127.0.0.1', port=18443): Max retries exceeded with url: / (Caused by ProxyError('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))))"
      },
      {
       "type": "urllib3.exceptions.ProxyError",
       "message": "('Unable to connect to proxy. Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#https-proxy-error-http-proxy', SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))"
      },
      {
       "type": "urllib3.exceptions.SSLError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      }
     ]
    },
    "httpx": [
     {
      "python": "3.14.4",
      "openssl": "OpenSSL 3.5.5 27 Jan 2026",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       }
      ]
     },
     {
      "python": "3.12.3",
      "openssl": "OpenSSL 3.0.13 30 Jan 2024",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       }
      ]
     },
     {
      "python": "3.11.3",
      "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       }
      ]
     }
    ],
    "httpx_env_HTTPS_PROXY": {
     "ok": false,
     "raised": "httpx.ConnectError: [SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)",
     "chain": [
      {
       "type": "httpx.ConnectError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      },
      {
       "type": "httpcore.ConnectError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      },
      {
       "type": "ssl.SSLError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      }
     ]
    },
    "httpx_debug_log": [
     "httpcore.connection start_tls.started ssl_context=<ssl.SSLContext> server_hostname='127.0.0.1' timeout=10",
     "httpcore.connection start_tls.failed exception=ConnectError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))",
     "raised ConnectError: [SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
    ],
    "node_fetch": {
     "ok": false,
     "chain": [
      {
       "name": "TypeError",
       "message": "fetch failed"
      },
      {
       "name": "Error",
       "code": "ERR_SSL_WRONG_VERSION_NUMBER",
       "message": "403E4D694C780000:error:0A00010B:SSL routines:tls_validate_record_header:wrong version number:../deps/openssl/openssl/ssl/record/methods/tlsany_meth.c:77:\n"
      }
     ]
    },
    "playwright": {
     "playwright": "1.63.0",
     "chromium": "153.0.8010.12",
     "requestfailed": [
      "net::ERR_PROXY_CONNECTION_FAILED"
     ],
     "ok": false,
     "message": "page.goto: net::ERR_PROXY_CONNECTION_FAILED at https://127.0.0.1:18443/"
    }
   },
   "connect_proxy_log": [
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010607"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010607"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010607"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010200"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010200"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010200"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010200"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "16030105fc"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "16030105fc"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010604"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010604"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010607"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010200"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010200"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010607"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010607"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010200"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010200"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010607"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "1603010607"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "160301063c"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "16030106e8"
    },
    {
     "event": "not-a-connect-request",
     "first_bytes_hex": "16030106c8"
    }
   ]
  },
  {
   "id": "case2-target-hop",
   "what": "http:// proxy URL, CONNECT succeeds, target port speaks plain HTTP",
   "proxy": "http://127.0.0.1:18480",
   "target": "https://127.0.0.1:18000/",
   "clients": {
    "curl": [
     {
      "version": "curl 8.18.0 (x86_64-pc-linux-gnu) libcurl/8.18.0 OpenSSL/3.5.5 zlib/1.3.1 brotli/1.2.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.68.0 librtmp/2.3 mit-krb5/1.22.1 OpenLDAP/2.6.10",
      "exit": 35,
      "write_out": "http_code=000 http_connect=200 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* Establish HTTP proxy tunnel to 127.0.0.1:18000",
       "> CONNECT 127.0.0.1:18000 HTTP/1.1",
       "< HTTP/1.1 200 Connection established",
       "* CONNECT tunnel established, response 200",
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     },
     {
      "version": "curl 8.7.1 (x86_64-pc-linux-gnu) libcurl/8.7.1 OpenSSL/3.2.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.27.0 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.0 nghttp2/1.60.0 nghttp3/1.2.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=200 exit=35",
      "stderr": "curl: (35) OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long",
      "verbose_excerpt": [
       "* CONNECT tunnel: HTTP/1.1 negotiated",
       "* Establish HTTP proxy tunnel to 127.0.0.1:18000",
       "> CONNECT 127.0.0.1:18000 HTTP/1.1",
       "< HTTP/1.1 200 Connection established",
       "* CONNECT tunnel established, response 200",
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* TLSv1.3 (OUT), TLS alert, record overflow (534):",
       "* OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long",
       "* Closing connection",
       "curl: (35) OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long"
      ]
     },
     {
      "version": "curl 8.12.1 (x86_64-pc-linux-gnu) libcurl/8.12.1 OpenSSL/3.4.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.34.4 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.7.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=200 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A0000C6:SSL routines::packet length too long",
      "verbose_excerpt": [
       "* CONNECT tunnel: HTTP/1.1 negotiated",
       "* Establish HTTP proxy tunnel to 127.0.0.1:18000",
       "> CONNECT 127.0.0.1:18000 HTTP/1.1",
       "< HTTP/1.1 200 Connection established",
       "* CONNECT tunnel established, response 200",
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* TLSv1.3 (OUT), TLS alert, record overflow (534):",
       "* TLS connect error: error:0A0000C6:SSL routines::packet length too long",
       "curl: (35) TLS connect error: error:0A0000C6:SSL routines::packet length too long"
      ]
     },
     {
      "version": "curl 8.17.0 (x86_64-pc-linux-gnu) libcurl/8.17.0 OpenSSL/3.6.0 zlib/1.3.1 brotli/1.2.0 zstd/1.5.7 c-ares/1.34.5 libidn2/2.3.8 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.68.0 nghttp3/1.12.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=200 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* Establish HTTP proxy tunnel to 127.0.0.1:18000",
       "> CONNECT 127.0.0.1:18000 HTTP/1.1",
       "< HTTP/1.1 200 Connection established",
       "* CONNECT tunnel established, response 200",
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     },
     {
      "version": "curl 8.22.0 (x86_64-pc-linux-gnu) libcurl/8.22.0 OpenSSL/4.0.2 zlib/1.3.2 brotli/1.2.0 zstd/1.5.7 c-ares/1.34.8 libidn2/2.3.8 libpsl/0.23.3 libssh2/1.11.1 nghttp2/1.70.0 ngtcp2/1.25.0 nghttp3/1.18.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=200 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "> CONNECT 127.0.0.1:18000 HTTP/1.1",
       "< HTTP/1.1 200 Connection established",
       "* CONNECT tunnel established, response 200",
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     }
    ],
    "curl_env_HTTPS_PROXY": {
     "exit": 35,
     "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
    },
    "requests": [
     {
      "python": "3.14.4",
      "openssl": "OpenSSL 3.5.5 27 Jan 2026",
      "ok": false,
      "raised": "requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))",
      "urllib3_reason_type": "SSLError",
      "chain": [
       {
        "type": "requests.exceptions.SSLError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       }
      ]
     },
     {
      "python": "3.12.3",
      "openssl": "OpenSSL 3.0.13 30 Jan 2024",
      "ok": false,
      "raised": "requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)')))",
      "urllib3_reason_type": "SSLError",
      "chain": [
       {
        "type": "requests.exceptions.SSLError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)')))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       }
      ]
     },
     {
      "python": "3.11.3",
      "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
      "ok": false,
      "raised": "requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)')))",
      "urllib3_reason_type": "SSLError",
      "chain": [
       {
        "type": "requests.exceptions.SSLError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)')))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       }
      ]
     }
    ],
    "requests_env_HTTPS_PROXY": {
     "ok": false,
     "raised": "requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))",
     "urllib3_reason_type": "SSLError",
     "chain": [
      {
       "type": "requests.exceptions.SSLError",
       "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))"
      },
      {
       "type": "urllib3.exceptions.MaxRetryError",
       "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))"
      },
      {
       "type": "urllib3.exceptions.SSLError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      }
     ]
    },
    "httpx": [
     {
      "python": "3.14.4",
      "openssl": "OpenSSL 3.5.5 27 Jan 2026",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       }
      ]
     },
     {
      "python": "3.12.3",
      "openssl": "OpenSSL 3.0.13 30 Jan 2024",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       }
      ]
     },
     {
      "python": "3.11.3",
      "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       }
      ]
     }
    ],
    "httpx_env_HTTPS_PROXY": {
     "ok": false,
     "raised": "httpx.ConnectError: [SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)",
     "chain": [
      {
       "type": "httpx.ConnectError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      },
      {
       "type": "httpcore.ConnectError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      },
      {
       "type": "ssl.SSLError",
       "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
      }
     ]
    },
    "httpx_debug_log": [
     "httpcore.http11 send_request_headers.started request=<Request [b'CONNECT']>",
     "httpcore.http11 send_request_body.started request=<Request [b'CONNECT']>",
     "httpcore.http11 receive_response_headers.started request=<Request [b'CONNECT']>",
     "httpcore.http11 receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'Connection established', [])",
     "httpcore.proxy start_tls.started ssl_context=<ssl.SSLContext> server_hostname='127.0.0.1' timeout=10",
     "httpcore.proxy start_tls.failed exception=ConnectError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)'))",
     "raised ConnectError: [SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
    ],
    "node_fetch": {
     "ok": false,
     "chain": [
      {
       "name": "TypeError",
       "message": "fetch failed"
      },
      {
       "name": "Error",
       "code": "ERR_SSL_WRONG_VERSION_NUMBER",
       "message": "405EED07DC7A0000:error:0A00010B:SSL routines:tls_validate_record_header:wrong version number:../deps/openssl/openssl/ssl/record/methods/tlsany_meth.c:77:\n"
      }
     ]
    },
    "playwright": {
     "playwright": "1.63.0",
     "chromium": "153.0.8010.12",
     "requestfailed": [
      "net::ERR_SSL_PROTOCOL_ERROR"
     ],
     "ok": false,
     "message": "page.goto: net::ERR_SSL_PROTOCOL_ERROR at https://127.0.0.1:18000/"
    }
   },
   "connect_proxy_log": [
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18000"
    }
   ]
  },
  {
   "id": "case2-direct",
   "what": "the case 2 target with no proxy at all",
   "proxy": null,
   "target": "https://127.0.0.1:18000/",
   "clients": {
    "curl": [
     {
      "version": "curl 8.18.0 (x86_64-pc-linux-gnu) libcurl/8.18.0 OpenSSL/3.5.5 zlib/1.3.1 brotli/1.2.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.68.0 librtmp/2.3 mit-krb5/1.22.1 OpenLDAP/2.6.10",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     },
     {
      "version": "curl 8.7.1 (x86_64-pc-linux-gnu) libcurl/8.7.1 OpenSSL/3.2.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.27.0 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.0 nghttp2/1.60.0 nghttp3/1.2.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* TLSv1.3 (OUT), TLS alert, record overflow (534):",
       "* OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long",
       "* Closing connection",
       "curl: (35) OpenSSL/3.2.1: error:0A0000C6:SSL routines::packet length too long"
      ]
     },
     {
      "version": "curl 8.12.1 (x86_64-pc-linux-gnu) libcurl/8.12.1 OpenSSL/3.4.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.34.4 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.7.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A0000C6:SSL routines::packet length too long",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* TLSv1.3 (OUT), TLS alert, record overflow (534):",
       "* TLS connect error: error:0A0000C6:SSL routines::packet length too long",
       "curl: (35) TLS connect error: error:0A0000C6:SSL routines::packet length too long"
      ]
     },
     {
      "version": "curl 8.17.0 (x86_64-pc-linux-gnu) libcurl/8.17.0 OpenSSL/3.6.0 zlib/1.3.1 brotli/1.2.0 zstd/1.5.7 c-ares/1.34.5 libidn2/2.3.8 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.68.0 nghttp3/1.12.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     },
     {
      "version": "curl 8.22.0 (x86_64-pc-linux-gnu) libcurl/8.22.0 OpenSSL/4.0.2 zlib/1.3.2 brotli/1.2.0 zstd/1.5.7 c-ares/1.34.8 libidn2/2.3.8 libpsl/0.23.3 libssh2/1.11.1 nghttp2/1.70.0 ngtcp2/1.25.0 nghttp3/1.18.0",
      "exit": 35,
      "write_out": "http_code=000 http_connect=000 exit=35",
      "stderr": "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number",
      "verbose_excerpt": [
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLS connect error: error:0A00010B:SSL routines::wrong version number",
       "curl: (35) TLS connect error: error:0A00010B:SSL routines::wrong version number"
      ]
     }
    ],
    "requests": [
     {
      "python": "3.14.4",
      "openssl": "OpenSSL 3.5.5 27 Jan 2026",
      "ok": false,
      "raised": "requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))",
      "urllib3_reason_type": "SSLError",
      "chain": [
       {
        "type": "requests.exceptions.SSLError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       }
      ]
     },
     {
      "python": "3.12.3",
      "openssl": "OpenSSL 3.0.13 30 Jan 2024",
      "ok": false,
      "raised": "requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)')))",
      "urllib3_reason_type": "SSLError",
      "chain": [
       {
        "type": "requests.exceptions.SSLError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)')))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       }
      ]
     },
     {
      "python": "3.11.3",
      "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
      "ok": false,
      "raised": "requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)')))",
      "urllib3_reason_type": "SSLError",
      "chain": [
       {
        "type": "requests.exceptions.SSLError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)')))"
       },
       {
        "type": "urllib3.exceptions.MaxRetryError",
        "message": "HTTPSConnectionPool(host='127.0.0.1', port=18000): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)')))"
       },
       {
        "type": "urllib3.exceptions.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       }
      ]
     }
    ],
    "httpx": [
     {
      "python": "3.14.4",
      "openssl": "OpenSSL 3.5.5 27 Jan 2026",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: RECORD_LAYER_FAILURE] record layer failure (_ssl.c:1081)"
       }
      ]
     },
     {
      "python": "3.12.3",
      "openssl": "OpenSSL 3.0.13 30 Jan 2024",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)"
       }
      ]
     },
     {
      "python": "3.11.3",
      "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
      "ok": false,
      "raised": "httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)",
      "chain": [
       {
        "type": "httpx.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       },
       {
        "type": "httpcore.ConnectError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       },
       {
        "type": "ssl.SSLError",
        "message": "[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)"
       }
      ]
     }
    ],
    "node_fetch": {
     "ok": false,
     "chain": [
      {
       "name": "TypeError",
       "message": "fetch failed"
      },
      {
       "name": "Error",
       "code": "ERR_SSL_WRONG_VERSION_NUMBER",
       "message": "407E7076CF7B0000:error:0A00010B:SSL routines:tls_validate_record_header:wrong version number:../deps/openssl/openssl/ssl/record/methods/tlsany_meth.c:77:\n"
      }
     ]
    }
   },
   "connect_proxy_log": []
  },
  {
   "id": "control-fixed",
   "what": "http:// proxy URL and a real TLS target",
   "proxy": "http://127.0.0.1:18480",
   "target": "https://127.0.0.1:18443/",
   "clients": {
    "curl": [
     {
      "version": "curl 8.18.0 (x86_64-pc-linux-gnu) libcurl/8.18.0 OpenSSL/3.5.5 zlib/1.3.1 brotli/1.2.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.68.0 librtmp/2.3 mit-krb5/1.22.1 OpenLDAP/2.6.10",
      "exit": 0,
      "write_out": "http_code=200 http_connect=200 exit=0",
      "stderr": "",
      "verbose_excerpt": [
       "* Establish HTTP proxy tunnel to 127.0.0.1:18443",
       "> CONNECT 127.0.0.1:18443 HTTP/1.1",
       "< HTTP/1.1 200 Connection established",
       "* CONNECT tunnel established, response 200",
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLSv1.3 (IN), TLS handshake, Server hello (2):",
       "* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):",
       "* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):",
       "* TLSv1.3 (IN), TLS handshake, Certificate (11):",
       "* TLSv1.3 (IN), TLS handshake, CERT verify (15):",
       "* TLSv1.3 (IN), TLS handshake, Finished (20):",
       "* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):",
       "* TLSv1.3 (OUT), TLS handshake, Finished (20):",
       "* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519MLKEM768 / RSASSA-PSS",
       "* SSL certificate verified via OpenSSL.",
       "* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):",
       "* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):",
       "< HTTP/1.0 200 OK"
      ]
     },
     {
      "version": "curl 8.7.1 (x86_64-pc-linux-gnu) libcurl/8.7.1 OpenSSL/3.2.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.27.0 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.0 nghttp2/1.60.0 nghttp3/1.2.0",
      "exit": 0,
      "write_out": "http_code=200 http_connect=200 exit=0",
      "stderr": "",
      "verbose_excerpt": [
       "* CONNECT tunnel: HTTP/1.1 negotiated",
       "* Establish HTTP proxy tunnel to 127.0.0.1:18443",
       "> CONNECT 127.0.0.1:18443 HTTP/1.1",
       "< HTTP/1.1 200 Connection established",
       "* CONNECT tunnel established, response 200",
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* TLSv1.3 (IN), TLS handshake, Server hello (2):",
       "* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):",
       "* TLSv1.3 (IN), TLS handshake, Certificate (11):",
       "* TLSv1.3 (IN), TLS handshake, CERT verify (15):",
       "* TLSv1.3 (IN), TLS handshake, Finished (20):",
       "* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):",
       "* TLSv1.3 (OUT), TLS handshake, Finished (20):",
       "* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / x25519 / RSASSA-PSS",
       "*  SSL certificate verify ok.",
       "* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):",
       "* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):",
       "* old SSL session ID is stale, removing",
       "< HTTP/1.0 200 OK",
       "* Closing connection"
      ]
     },
     {
      "version": "curl 8.12.1 (x86_64-pc-linux-gnu) libcurl/8.12.1 OpenSSL/3.4.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.34.4 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.7.0",
      "exit": 0,
      "write_out": "http_code=200 http_connect=200 exit=0",
      "stderr": "",
      "verbose_excerpt": [
       "* CONNECT tunnel: HTTP/1.1 negotiated",
       "* Establish HTTP proxy tunnel to 127.0.0.1:18443",
       "> CONNECT 127.0.0.1:18443 HTTP/1.1",
       "< HTTP/1.1 200 Connection established",
       "* CONNECT tunnel established, response 200",
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* TLSv1.3 (IN), TLS handshake, Server hello (2):",
       "* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):",
       "* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):",
       "* TLSv1.3 (IN), TLS handshake, Certificate (11):",
       "* TLSv1.3 (IN), TLS handshake, CERT verify (15):",
       "* TLSv1.3 (IN), TLS handshake, Finished (20):",
       "* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):",
       "* TLSv1.3 (OUT), TLS handshake, Finished (20):",
       "* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / x25519 / RSASSA-PSS",
       "*  SSL certificate verify ok.",
       "* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):",
       "* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):",
       "< HTTP/1.0 200 OK",
       "* TLSv1.3 (OUT), TLS alert, close notify (256):"
      ]
     },
     {
      "version": "curl 8.17.0 (x86_64-pc-linux-gnu) libcurl/8.17.0 OpenSSL/3.6.0 zlib/1.3.1 brotli/1.2.0 zstd/1.5.7 c-ares/1.34.5 libidn2/2.3.8 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.68.0 nghttp3/1.12.0",
      "exit": 0,
      "write_out": "http_code=200 http_connect=200 exit=0",
      "stderr": "",
      "verbose_excerpt": [
       "* Establish HTTP proxy tunnel to 127.0.0.1:18443",
       "> CONNECT 127.0.0.1:18443 HTTP/1.1",
       "< HTTP/1.1 200 Connection established",
       "* CONNECT tunnel established, response 200",
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLSv1.3 (IN), TLS handshake, Server hello (2):",
       "* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):",
       "* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):",
       "* TLSv1.3 (IN), TLS handshake, Certificate (11):",
       "* TLSv1.3 (IN), TLS handshake, CERT verify (15):",
       "* TLSv1.3 (IN), TLS handshake, Finished (20):",
       "* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):",
       "* TLSv1.3 (OUT), TLS handshake, Finished (20):",
       "* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519MLKEM768 / RSASSA-PSS",
       "* SSL certificate verified via OpenSSL.",
       "* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):",
       "* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):",
       "< HTTP/1.0 200 OK"
      ]
     },
     {
      "version": "curl 8.22.0 (x86_64-pc-linux-gnu) libcurl/8.22.0 OpenSSL/4.0.2 zlib/1.3.2 brotli/1.2.0 zstd/1.5.7 c-ares/1.34.8 libidn2/2.3.8 libpsl/0.23.3 libssh2/1.11.1 nghttp2/1.70.0 ngtcp2/1.25.0 nghttp3/1.18.0",
      "exit": 0,
      "write_out": "http_code=200 http_connect=200 exit=0",
      "stderr": "",
      "verbose_excerpt": [
       "> CONNECT 127.0.0.1:18443 HTTP/1.1",
       "< HTTP/1.1 200 Connection established",
       "* CONNECT tunnel established, response 200",
       "* TLSv1.3 (OUT), TLS handshake, Client hello (1):",
       "* SSL Trust Anchors:",
       "* TLSv1.3 (IN), TLS handshake, Server hello (2):",
       "* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):",
       "* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):",
       "* TLSv1.3 (IN), TLS handshake, Certificate (11):",
       "* TLSv1.3 (IN), TLS handshake, CERT verify (15):",
       "* TLSv1.3 (IN), TLS handshake, Finished (20):",
       "* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):",
       "* TLSv1.3 (OUT), TLS handshake, Finished (20):",
       "* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519MLKEM768 / RSASSA-PSS",
       "* OpenSSL verify result: 0",
       "* SSL certificate verified via OpenSSL.",
       "* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):",
       "* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):",
       "< HTTP/1.0 200 OK"
      ]
     }
    ],
    "curl_env_HTTPS_PROXY": {
     "exit": 0,
     "stderr": ""
    },
    "requests": [
     {
      "python": "3.14.4",
      "openssl": "OpenSSL 3.5.5 27 Jan 2026",
      "ok": true,
      "status": 200
     },
     {
      "python": "3.12.3",
      "openssl": "OpenSSL 3.0.13 30 Jan 2024",
      "ok": true,
      "status": 200
     },
     {
      "python": "3.11.3",
      "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
      "ok": true,
      "status": 200
     }
    ],
    "requests_env_HTTPS_PROXY": {
     "ok": true,
     "status": 200
    },
    "httpx": [
     {
      "python": "3.14.4",
      "openssl": "OpenSSL 3.5.5 27 Jan 2026",
      "ok": true,
      "status": 200
     },
     {
      "python": "3.12.3",
      "openssl": "OpenSSL 3.0.13 30 Jan 2024",
      "ok": true,
      "status": 200
     },
     {
      "python": "3.11.3",
      "openssl": "OpenSSL 1.1.1s  1 Nov 2022",
      "ok": true,
      "status": 200
     }
    ],
    "httpx_env_HTTPS_PROXY": {
     "ok": true,
     "status": 200
    },
    "httpx_debug_log": [
     "httpcore.http11 send_request_headers.started request=<Request [b'CONNECT']>",
     "httpcore.http11 send_request_body.started request=<Request [b'CONNECT']>",
     "httpcore.http11 receive_response_headers.started request=<Request [b'CONNECT']>",
     "httpcore.http11 receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'Connection established', [])",
     "httpcore.proxy start_tls.started ssl_context=<ssl.SSLContext> server_hostname='127.0.0.1' timeout=10",
     "httpcore.proxy start_tls.complete return_value=<httpcore._backends.sync.SyncStream>",
     "httpcore.http11 receive_response_headers.complete return_value=(b'HTTP/1.0', 200, b'OK', [(b'Server', b'SimpleHTTP/0.6 Python/3.14.4'), (b'Date', b'Sun, 04 Oct 2026 10:15:39 GMT'), (b'Content-type', b'text/html'), (b'Content-Length', b'14'), (b'Last-Modified', b'Sun, 04 Oct 2026 10:15:32 GMT')])"
    ],
    "node_fetch": {
     "ok": true,
     "status": 200
    },
    "playwright": {
     "playwright": "1.63.0",
     "chromium": "153.0.8010.12",
     "requestfailed": [],
     "ok": true,
     "status": 200
    }
   },
   "connect_proxy_log": [
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    },
    {
     "event": "tunnel-open",
     "authority": "127.0.0.1:18443"
    }
   ]
  }
 ]
}
