1.6 KiB
1.6 KiB
Consumer findings ledger — alkhttp consuming alkcall
Findings from writing the first real consumer (alkhttp) against alkcall. alkcall is deliberately minimal; expect missing features and edge-case bugs to surface here first. Extract items into alkcall tasks/reviews as the project sees fit.
Format: date | found-in (alkhttp context) | severity | status.
Open
CF-001 — call_single_stream write-failure maps to non-retryable INTERNAL (2026-08-29)
- Found in: alkhttp
from_wssdrop-monitor race tests (WS-02/CON-02, review-001-ws-eof-signal). When the transport mux dies mid-call, the write path fails fast and alkcall'scall_single_streamwrite-failure mapping produces a non-retryableINTERNAL: failed to write request frame— even though the call never reached the producer and a reconnect/retry would be safe. - Impact: consumers that drop connections under load (WS EOF, network flaps) get non-retryable errors for in-flight calls that are provably not processed. Callers must either tolerate-or-discriminate two envelope shapes for the same transport-death race, or miss retry opportunities.
- Suggested direction: classify write failures that occur before any
response frame could arrive as retryable (
CONNECTION_CLOSEDor equivalent) — or expose the distinction so consumers can decide. - alkhttp side: the race test tolerates both outcomes for now (asserts retryable only when the call is provably in-flight). If/when alkcall fixes the mapping, alkhttp's ws-eof-signal test should tighten back to retryable-only.
- Status: open — no alkcall change made.
Resolved
(empty)