coleam00/Archon · error

Network error fetching checksums from ${checksumsUrl}: ${toE

Error message

Network error fetching checksums from ${checksumsUrl}: ${toError(err).message}

What it means

The fallback (no embedded checksum) path of downloadWebDist fetches the checksums file and tarball in parallel; this error wraps any network-level failure of fetch(checksumsUrl), preserving the underlying message. It exists so the operator sees which URL failed rather than an opaque fetch rejection.

Source

Thrown at packages/cli/src/commands/serve.ts:140

  console.log(`Web UI not found locally — downloading from release v${version}...`);

  // Determine expected hash: prefer build-time embedded hash (independent trust anchor)
  // over the remote checksums.txt (same-source, weaker guarantee).
  let expectedHash: string;
  let tarballRes: Response;
  if (embeddedChecksum) {
    expectedHash = parseEmbeddedChecksum(embeddedChecksum);
    log.info({ source: 'embedded' }, 'web_dist.checksum_resolved');
    console.log(`Downloading ${tarballUrl}...`);
    tarballRes = await fetch(tarballUrl).catch((err: unknown) => {
      throw new Error(`Network error fetching tarball from ${tarballUrl}: ${toError(err).message}`);
    });
  } else {
    // Fallback: download checksums and tarball in parallel (dev mode or pre-build binaries)
    console.log(`Downloading ${tarballUrl}...`);
    const [checksumsRes, fetchedTarballRes] = await Promise.all([
      fetch(checksumsUrl).catch((err: unknown) => {
        throw new Error(
          `Network error fetching checksums from ${checksumsUrl}: ${toError(err).message}`
        );
      }),
      fetch(tarballUrl).catch((err: unknown) => {
        throw new Error(
          `Network error fetching tarball from ${tarballUrl}: ${toError(err).message}`
        );
      }),
    ]);
    if (!checksumsRes.ok) {
      throw new Error(
        `Failed to download checksums: ${checksumsRes.status} ${checksumsRes.statusText}`
      );
    }
    const checksumsText = await checksumsRes.text();
    expectedHash = parseChecksum(checksumsText, 'archon-web.tar.gz');
    log.info({ source: 'remote' }, 'web_dist.checksum_resolved');
    tarballRes = fetchedTarballRes;

View on GitHub (pinned to 0773b97458)

Solutions

  1. Verify reachability of the checksums URL with curl -I <checksumsUrl> from the host.
  2. Fix proxy/egress configuration (HTTPS_PROXY) or firewall rules for the download host.
  3. Use a release binary with an embedded checksum to skip the remote checksums download entirely.
  4. Retry on transient failures; confirm the release/channel actually publishes the checksums artifact.

Example fix

// before: dev binary hitting missing checksums host
archon serve --download  # fetch(checksumsUrl) fails
// after: release binary with embedded checksum
archon serve --download  # uses parseEmbeddedChecksum path
Defensive patterns

Strategy: retry

Validate before calling

const res = await fetch(checksumsUrl).catch(() => null);
if (!res || !res.ok) throw new Error(`Checksums URL unreachable or failing: ${checksumsUrl}`);

Try / catch

try {
  await serveCommand({ downloadOnly: true });
} catch (err) {
  if (err instanceof Error && err.message.startsWith('Network error fetching checksums')) {
    // verify DNS/proxy for the checksums host and retry
  }
}

Prevention

When it happens

Trigger: serveCommand -> downloadWebDist in dev/pre-build mode (embeddedChecksum absent); fetch(checksumsUrl) rejects due to unreachable host, DNS/TLS failure, or aborted request.

Common situations: Same network issues as tarball fetch: offline host, proxy blocking, DNS failure; dev binaries pointing at a release URL that does not host checksums yet; firewall egress rules.

Related errors


AI-assisted analysis of coleam00/Archon@0773b97458 (2026-09-01). Data as JSON: /api/errors/1b3f20fd01b11a38. Report an issue: GitHub.