Files
OmniRoute/tests
Minxi Hou ac8c31bb36 fix(api): keep the connection status when a test never reaches the upstream
A connection test that fails with "fetch failed", ENOTFOUND or a timeout says
nothing about the connection itself, because the request never left the host.
Recording it as testStatus 'error' was a one-way door: proactive recovery only
restores connections that are 'unavailable' and carry an elapsed cooldown, and
a failed test sets neither, so a brief outage left the dashboard showing most
of the fleet as broken until each connection was re-tested by hand. Routing was
never affected, which is what made it easy to miss.

The status is now simply not written when the test learned nothing. The update
merges over the stored row, so leaving the key out preserves whatever was there,
including for a connection that has never been tested. The attempt itself is
still recorded in lastError and errorCode, matching how the token health check
already treats a refresh that failed for transient reasons.

The timeout path needed a second fix to reach that branch at all. The OAuth
probe reports its own abort as "Test timed out after 30s", and the classifier
was matching on "timeout", which that wording does not contain, so a hung probe
was diagnosed as a generic upstream error and marked the connection broken. A
hang is the more likely symptom when a network is reachable but dead, so that
was the case that mattered most.
2026-08-07 14:29:20 -03:00
..
2026-07-29 15:18:55 -03:00
2026-07-29 15:18:55 -03:00
2026-07-29 15:18:55 -03:00
2026-07-29 15:18:55 -03:00
2026-07-29 15:18:55 -03:00
2026-07-29 15:18:55 -03:00
2026-07-29 15:18:55 -03:00