Stabilising flaky curl checks in CI
# the problem
CI jobs that hit external APIs or run smoke checks with curl go intermittently red when the target upgrades its bot management. The endpoint is fine; the client fingerprint is not — and exit-code handling in the pipeline breaks when the failure mode changes.
# what recurl does
Alias curl to recurl in the job. recurl preserves curl’s flags and exit codes, so existing pipeline logic keeps working, and it only escalates when it detects a block — unprotected checks are untouched, protected checks stop flaking. Use --recurl-strict where a job must assert plain-curl behaviour.
# how to do it
Step by step
- 1
In the CI step, install recurl and alias curl=recurl (or invoke recurl directly).
- 2
Keep every existing flag and exit-code assertion — recurl forwards them verbatim.
- 3
Let escalation handle checks against hosts that added bot management, with no per-host config.
- 4
Scope --recurl-strict to jobs that must fail exactly as plain curl would.
Related
See the escalation architecture, browse more use cases, or follow a guide.