Skip to content

End Search Natives that got no backend connection as not started - #168

Merged
liran merged 3 commits into
mainfrom
fix/native-connect-not-started
Nov 11, 2026
Merged

liran merged 3 commits into
mainfrom
fix/native-connect-not-started

Conversation

@liran

@liran liran commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

Production PSE search reads occasionally fail with "Native HTTP exchange incomplete while connecting (timeout)" in short bursts, and only PSE's own read path resends them. A Native that never got a connection wrote nothing, so the backend never saw it; reporting it NATIVE_NOT_STARTED with its UNAVAILABLE failure says so, and weir-go then resends it like any other refused call, whatever the request method. Failures after the transport handed over a connection still end RESPONSE_INCOMPLETE, since request bytes may have arrived.

A Search Native that fails while connecting or during the TLS handshake
never wrote a byte, so the backend never saw it. Report it NOT_STARTED with
its UNAVAILABLE failure, which clients may resend whatever the method,
instead of RESPONSE_INCOMPLETE, which reads as possibly applied.
@liran liran self-assigned this Nov 11, 2026
Only advance the exchange phase, read it once, and note that not started is
true only while the Native transport never reuses a connection. Cover a
deadline before the connection, an untrusted certificate, an unresolvable
host and a late handshake, and document deadlines while connecting.
@liran
liran merged commit 727f600 into main Nov 11, 2026
8 checks passed
@liran
liran deleted the fix/native-connect-not-started branch November 11, 2026 21:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant