Back to investigation
Agent investigation report/Controlled regression capture

Immediate TCP resets terminate intermittent TLS sessions

A sanitized, persisted PacketSafari Agent run showing useful preliminary direction, the background verification work, and the updated packet-grounded finding.

This report evolvedPreliminary ~1m 27sVerification update ~9m 48sReplay report ↓
Investigation question

Some TLS sessions reach the application service while others fail immediately after ClientHello. Find the strongest supported cause and distinguish it from incidental alerts.

12
Affected attempts
ClientHello followed by immediate RST/ACK
4
Successful baselines
ServerHello and application exchange observed

01 / How the report evolves · Fast + verification

Useful direction first.
Verification follows.

The Agent delivers bounded direction first while PacketSafari Triage and the Core Engine continue wider evidence discovery and an independent verifier challenges the first answer.

Times are measured upload-to-milestone values from this controlled run, not a general runtime guarantee.

01 · ~1m 27s
Preliminary report
02 · ~9m 48s
Verification update
Delivered · preliminary~1m 27s

Useful direction arrives before capture-wide verification is complete.

Active TCP resets immediately after TLS begins are the strongest supported cause—not packet loss.

  • Failed streams 2 and 3 show ClientHello followed by immediate RST/ACK.
  • Successful stream 1 proceeds through TLS and application exchange.

Direction is supported by frames 26–62, but its scope and competing explanations have not yet been independently challenged.

Meanwhile, in the background

The verifier tests the reset hypothesis, looks for counterexamples, expands the affected scope, and separates incidental alerts from discriminating evidence.

02 / Current result

Verified finding

The reset sequence is verified.
Its source is the next question.

Twelve TLS attempts are terminated by an immediate RST/ACK after ClientHello. The capture does not prove which device or policy generated the resets.

Packet-grounded

Twelve affected attempts show the same ClientHello-to-RST sequence, while four successful baselines proceed normally.

Open attribution question

The packets do not identify the reset-generating component or the policy selecting the failed ClientHello profile.

03 / Packet sequence

One path succeeds.
One path is reset.

The comparison rejects a capture-wide outage and keeps the failure mechanism separate from the still-unknown policy trigger.

Successful baselinestreams 1, 10, 11, 17
29ClientHello31

ServerHello received

The TLS session proceeds into application exchange. Frames 97 and 115 provide additional successful baselines.

Affected attempt12 observed failures
56ClientHello57

Immediate RST/ACK

The same sequence repeats across frames 56–92 and 174–190 in streams 2–9 and 13–16.

04 / Evidence ledger

The strongest failure and baseline anchors stay visible. Every additional claim remains one step away.

RCA-1
frames 56–57

Representative failure sequence

Frame 56 carries the SNI-bearing ClientHello; frame 57 is the immediate reverse-direction RST/ACK.

frame.number == 56 || frame.number == 57
BASELINE
frames 29, 31, 97, 115

Successful TLS sessions coexist

Successful attempts receive ServerHello and proceed, rejecting a capture-wide service or path outage.

frame.number == 29 || frame.number == 31 || frame.number == 97 || frame.number == 115
Show 2 more exact evidence anchors
RCA-2
frames 56–92, 174–190

Complete affected scope

Twelve attempts in streams 2–9 and 13–16 follow the same ClientHello-to-reset pattern.

tcp.stream in { 2 3 4 5 6 7 8 9 13 14 15 16 } && tls.handshake.type == 1
FINGERPRINT
frames 54, 57

Reset fingerprint differs

Reset traffic uses TTL 64 and window 1024; normal server-direction traffic uses TTL 125 with sequential IP IDs. This supports—but does not prove—a different generating stack.

frame.number == 54 || frame.number == 57

05 / Verification changes

The verifier must account for the first answer, not merely restate it.

What changed after the preliminary report.

The summary stays short. Open the decision ledger only when you need the claim-by-claim comparison.

1 confirmed1 expanded2 rejected1 new1 open Review 6 decisions
ConfirmedImmediate resets after ClientHello are the failure mechanism
Preliminary

The first report identified active TCP resets after TLS begins as the strongest supported cause.

Verification update

Independent review confirmed the same ClientHello-to-RST/ACK sequence across all 12 affected attempts.

Evidence RCA-1 · RCA-2
ExpandedThe affected scope is larger than the preliminary sample
Preliminary

The preliminary report used streams 2 and 3 as representative failures.

Verification update

Wider capture evidence established exactly 12 affected streams and four successful baselines.

Evidence RCA-2 · BASELINE
RejectedPacket loss is not the discriminator
Preliminary

Retransmission and SACK alerts appeared incidental rather than causal.

Verification update

Recovery events also occur on successful sessions and before the failure cluster, rejecting packet loss as the primary explanation.

Evidence BASELINE
RejectedThis is not a capture-wide path or service outage
Preliminary

One successful TLS stream showed the service could complete a session.

Verification update

Four successful baselines coexist with the failures, rebutting a capture-wide outage.

Evidence BASELINE
New evidenceThe reset fingerprint narrows the next search
Preliminary

The first bounded report did not establish a distinct reset-stack fingerprint.

Verification update

TTL 64, TCP window 1024, and non-sequential IP IDs support—but do not prove—a different stack or intermediary.

Evidence FINGERPRINT
Still openThe reset-generating device and rejection policy remain open
Preliminary

The packets did not identify the component or policy selecting the failed ClientHello profile.

Verification update

Wider evidence still cannot attribute the reset to the endpoint, load balancer, firewall, or TLS-inspection component.

Evidence FINGERPRINT

06 / Evidence boundary

Not proven

What the packets
do not prove.

The capture cannot identify whether the endpoint, load balancer, firewall, or TLS-inspection component generated the resets.
The capture cannot identify the individual ClientHello attribute or policy that selects the failure branch.
A required bounded verification decode remains incomplete; the verified sequence is unaffected, while protocol-detail attribution remains open.
The exact 32-byte cipher-list detail in the preliminary claim was not independently rendered.

07 / Operator handoff

The report ends with a testable next move—not a generic recommendation.

Move from packet evidence to the responsible control point.

  1. 01Correlate frames 57–92 and 175–190 with service, load-balancer, firewall, and TLS-inspection logs at capture-relative 13.270–14.466 s and 19.494–19.545 s.
  2. 02Compare failed and successful ClientHello profiles and vary record version, extensions, and other TLS attributes one at a time.
  3. 03Use the affected-traffic filter below as the starting point for repeat investigation.
  4. 04Repeat the failed bounded verification checkpoint before upgrading the conclusion to verified.
Reproduction filter
tcp.stream in { 2 3 4 5 6 7 8 9 13 14 15 16 } &&
tls.handshake.type == 1

Report provenance

This is a controlled regression case rendered from saved Agent output. Public endpoint and capture identifiers are sanitized, and it is not presented as customer production data.

Capture
tls_reset_regression_sanitized
Run date
19 July 2026
Agent lane
Deep · Standard model · progressive verification
Workflow
Fast + verification

Report ee1f2c79a2f354ed9daed9b05ca763ee