fix(test-optimization): retry payload delivery failures - #10069
Conversation
Overall package sizeSelf size: 8.44 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.4.0 | 127.33 kB | 447.04 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
|
BenchmarksBenchmark execution time: 2026-08-31 17:49:26 Comparing candidate commit 3b9a84b in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 2294 metrics, 16 unstable metrics.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## juan-fernandez/test-optimization-delivery-lifecycle #10069 +/- ##
======================================================================================
Coverage ? 98.12%
======================================================================================
Files ? 992
Lines ? 149626
Branches ? 12835
======================================================================================
Hits ? 146821
Misses ? 2805
Partials ? 0 Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
81eef63 to
8e41f23
Compare
What does this PR do?
Improves retries for two Test Optimization payload delivery failures observed in Web UI end-to-end runs:
Coded permanent failures such as
ENOTFOUNDremain non-retriable, and background requests retain their ordinary attempt cap.Motivation
Web UI end-to-end runs reported
endpoint_payload.requests_errorswith bothstatus_code:N/A,error_type:networkanderror_type:err_dd_test_optimization_request_timeout.The existing retry classifier only retries an allowlist of coded transient network errors, while the generic network telemetry indicates the failure had no usable error code and therefore was not retried. Separately, removing the total attempt timer allowed a request waiting for a socket to remain pending until the final-flush deadline aborted it, without giving retry handling an opportunity to run.
Two full Web UI runs using the isolated retry experiment completed without payload request errors. A Web UI run using the stacked lifecycle implementation still reported request timeouts, motivating restoration of the total attempt timeout and deadline-bounded final retries in this draft.
Additional Notes
This is a draft stacked directly on #10044, which now contains both the delivery lifecycle and error telemetry changes formerly split across #10044 and #10045.
Verification:
git diff --check