Connection-retry guard drifted into 4 divergent copies; narrow 5xx-only variants lost Vertex transient-failure retry
daa29f7a-0336-4e98-a54b-18c8bd0ff6de
In packages/graph, the ETL/LLM connection-retry guard (callWithRetry/isRetryableError) had drifted into FOUR divergent copies. Only etl/extract.ts had the broad Vertex-hardened predicate (retries status 529/503/500/408/429, SDK names APIConnectionTimeoutError/APIConnectionError, Node socket codes ETIMEDOUT/ECONNRESET/ECONNREFUSED/EAI_AGAIN/EPIPE, and a message regex). The other three (etl/extract/index.ts exported copy, gds/somnus/retry.ts shared helper imported by ~8 modules + deduplicate.ts, and a private copy in gds/dream-reconnect.ts) were narrow 5xx-only (529/503/500). Callers on the narrow copies lost transient-failure retry: a status-less connection/timeout hang (APIConnection*Error or raw socket code, observed on Vertex Gemini endpoint) fell through and zeroed the whole record instead of retrying with backoff. A stale comment in extract.ts also claimed the guard was 'deliberately narrow: 5xx-ish only, no 429', contradicting the broad code beside it.