Skip to content

Consider caching timeouts/failures after a certain number of failures #122

@yeikel

Description

@yeikel

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions