While running Dependabot and the proxy in an air-gapped environment, I observed that both the core service and the proxy continuously retry unreachable hosts, seemingly without end. In a dependecy graph with many dependencies, this can translate to very long runtimes
It is unclear if this is necessarily a proxy problem or more core retrying, but instead, it would be better if the proxy cached these failures and short-circuited subsequent requests, rather than retrying indefinitely.
Sample logs:
proxy | 2026/05/14 03:04:50 [245] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:05:29 [535] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:05:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:05:52 [247] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:06:29 [537] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:06:49 [249] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:06:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:07:29 [539] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:07:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:07:51 [251] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:08:29 [541] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:08:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:08:52 [253] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:09:29 [543] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:09:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:09:49 [255] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:10:30 [545] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:10:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:10:51 [001] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:11:30 [547] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:11:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:11:52 [003] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:12:30 [549] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:12:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:12:50 [005] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:13:30 [551] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:13:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:13:51 [007] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:14:30 [553] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:14:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:14:52 [009] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:15:30 [555] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:15:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:15:50 [011] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:16:30 [557] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:16:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:16:51 [013] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:17:30 [559] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:17:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:17:53 [015] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:18:30 [561] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:18:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:18:50 [017] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:19:30 [563] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:19:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:19:51 [019] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:20:30 [565] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:20:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:20:53 [021] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:21:30 [567] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:21:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:21:50 [023] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:22:30 [569] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:22:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:22:52 [025] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:23:31 [571] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:23:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:23:53 [027] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:24:31 [573] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:24:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:24:50 [029] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:25:31 [575] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:25:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:25:52 [031] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:26:31 [577] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:26:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:26:53 [033] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
proxy | 2026/05/14 03:27:31 [579] GET [https://typescript-eslint.io:443/status](https://typescript-eslint.io/status)
proxy | 2026/05/14 03:27:49 Skipping sending metrics because api endpoint is empty
proxy | 2026/05/14 03:27:51 [035] WARN: Cannot read TLS response from mitm'd server dial tcp 98.84.224.111:443: connect: connection timed out
While running Dependabot and the proxy in an air-gapped environment, I observed that both the core service and the proxy continuously retry unreachable hosts, seemingly without end. In a dependecy graph with many dependencies, this can translate to very long runtimes
It is unclear if this is necessarily a proxy problem or more core retrying, but instead, it would be better if the proxy cached these failures and short-circuited subsequent requests, rather than retrying indefinitely.
Sample logs: