Skip to content

[Bug]: Connections log misses many connections (TCP and UDP) #205

Description

@steveepreston

Platform

Windows

ProxyBridge Version

4.0.13-Beta

OS and Version

Windows 11

Documentation

Code Review

  • I have gone through the code page

Describe the Bug

ProxyBridge does not detect/list all connections in the Connections log section. A significant portion of real network activity never appears there — sometimes an app generates many requests and none of them show up, sometimes only some of them do. The gap is large and easily visible, not an occasional missed edge case.

Some important observations to narrow it down:

  • It is not a rules problem. This happens regardless of whether a rule is applied or not. ProxyBridge does list DIRECT (non-matched) connections in the log, so unmatched traffic should appear — yet it's clearly visible that many connections are simply never listed at all.
  • It is not limited to UDP. TCP connections are also missing from the log. So this can't be explained by UDP flow-tracking quirks alone.
  • Comparison with Proxifier is dramatic. With Proxifier's Handle Direct Connections enabled, its Connections view instantly shows a mass of connections — every single connection, almost "spammy" (which means it's working correctly, that's the real amount of traffic a modern system generates). ProxyBridge on the same machine, same apps, shows very, very few entries in comparison. The difference is not subtle.
  • Clean test environment. Proxifier was completely OFF while testing ProxyBridge, so this is not a driver/interception conflict between the two.

Steps to reproduce:

  1. Start ProxyBridge (GUI, Administrator), no log filters configured. Rules don't matter — with or without, same result. IsTrafficLoggingEnabled is on.
  2. Open the Connections log section.
  3. Launch a network-active target app (e.g. a browser or any chatty app.exe) and let it send many requests.
  4. Observe the Connections log.
  5. (Optional, for comparison) Close ProxyBridge, run Proxifier with Handle Direct Connections enabled, launch the same app, and compare the volume of listed connections.

Expected behavior: every connection that WinDivert intercepts and ProxyBridge processes (PROXY, DIRECT, BLOCK, or no-match) is listed in the Connections log — matching the "Monitor all TCP and UDP connections system-wide" description in the Windows README.

Actual behavior: only a fraction of connections appear. Sometimes a burst of activity from an app produces zero entries; sometimes only some of its connections are logged. Both TCP and UDP are affected.

Additional Context

Possibly related: #155 was a different symptom (connections logged but traffic broken), but the maintainer noted it was "caused by change in relay and DNS because of which packets are dropped" in the v4 relay rework. If packets can be silently dropped/missed in that path, the same plumbing could plausibly cause connections to be silently unlogged here. Mentioning it in case the root cause overlaps; I searched the tracker and found no existing issue about incomplete connection listing itself.

Some hypotheses for where connections could be lost, based on going through the code and docs (take these as guesses to check, not conclusions):

  • The Connections log seems to be fed by a one-shot connection event when a new flow is first detected. If the first packet of a flow is missed (WinDivert queue pressure under burst, timing at startup), the whole connection stays invisible forever — there's no later chance to log it.
  • Connections already established before ProxyBridge starts would never produce a "new flow" event and thus never appear.
  • Reused sockets / keep-alive connections and rapid reconnects might be deduplicated or matched to an existing flow entry instead of being logged again.
  • WinDivert handle parameters (queue length/time) under bursty traffic could cause missed packets specifically during the high-activity moments where the gap is most visible.
  • The v4.0.0 log-filter engine ([Feature]: Hide/Show Direct Connection in Traffic Logging #97/[Feature]: Implement process-specific log filtering to reduce noise #150) filtering more than intended — though in my tests no filters were configured, so if it's this, it would be default-state filtering.

Happy to provide side-by-side screenshots/recordings of ProxyBridge vs Proxifier on the same workload, my profile export, or to test debug builds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    invalidThis doesn't seem right

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions