Skip to content

push over a slow link fails with "tls: bad record MAC" after a few minutes #57

Description

@Daily-AC

What happened

Controller v0.7.0 (macOS) pushing an 18.9 MB file to a Windows agent v0.5.0 (wanctl push -target zyl …, http transport, production relay) failed after 2 m 50 s:

wanctl: remote error: tls: bad record MAC

Controls run right afterwards, same controller, same relay:

  • 2 MB to the same Windows agent: OK, 34 s (~60 KB/s, the link was about 5× slower than on 2026-09-07, when the same 18 MB push took 65 s).
  • 18.9 MB to a Linux agent v0.7.0: OK, 81 s.

So the failure is tied to a long transfer over a slow link, not to file size alone or to the v0.7.0 controller.

Why it matters

bad record MAC is the peer-to-peer TLS layer detecting a corrupted or reordered record. The relay carries that stream opaquely over http long-poll, so the corruption is in the carrier: a frame duplicated, dropped or reordered somewhere between controller, relay and agent while the transfer straddles several poll cycles (or a reconnect). The transfer should fail loudly, which it does, but a multi-minute push over a slow link should not fail at all.

To look at

  • The http transport's sequencing when a poll times out or reconnects mid-stream (does a resent frame get delivered twice?).
  • Whether the same happens with transport=ws.
  • A reproduction with a throttled link (e.g. tc/pfctl at ~60 KB/s) and a ~20 MB push.

Workaround used: have the device download the artifact from the relay's /dl mirror and verify the manifest SHA-256 locally instead of pushing it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01A61DeY4MP88G6M94QrNvZe

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions