Files
OmniRoute/tests
Andrew B. 904a291f87 fix(combo): retry transient errors in pipeline strategy (#7794)
* chore: auto-sync from VM - 2026-07-10T16:29:57Z

* fix(combo): retry transient errors in pipeline strategy

Pipeline combo strategy (sequential chain) was hard-failing on ANY
intermediate step error, including transient ones like 429 rate-limit
and 503 service-unavailable. The combo config already exposes
maxRetries and retryDelayMs, but handlePipelineChat() ignored them
entirely — a single 429 from the first provider would kill the whole
pipeline without trying the remaining steps.

Now intermediate steps that fail with a transient HTTP status
(429, 502, 503, 504) are retried up to maxRetries times with
retryDelayMs delay, mirroring the retry behaviour already used by
priority/weighted strategies. Non-transient errors (400, 401, 403,
404) still fail immediately.

Changes:
- open-sse/services/pipeline.ts: add maxRetries/retryDelayMs params,
  retry loop for transient statuses
- open-sse/services/combo.ts: wire combo.config.maxRetries and
  combo.config.retryDelayMs to handlePipelineChat()
- tests/unit/combo-pipeline.test.ts: 7 tests covering retry success,
  retry exhaustion, non-transient skip, final-step passthrough,
  backward compat (maxRetries=0)

* chore: revert unrelated package-lock.json scope creep from PR #7794

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>

* docs(changelog): add fragment for #7794 pipeline transient retry

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>

---------

Co-authored-by: Andrian B. <andrewbalanesq@gmail.com>
Co-authored-by: Diego Rodrigues de Sa e Souza <diegosouza.pw@gmail.com>
Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
2026-07-19 20:53:01 -03:00
..
2026-05-23 01:46:59 -03:00
2026-07-13 09:12:40 -03:00
2026-07-02 10:47:13 -03:00
2026-07-06 02:25:17 -03:00
2026-07-13 09:12:40 -03:00
2026-06-13 17:27:40 -03:00