All releases
v2026-10-15
October 15, 2026
Patch
In this release
New3
Fixed27
Total30

repair stale tests failing on deploy

repair stale tests failing on deploy

New Features

3

T3 attempt-success SLI on a legal-reachable denominator — track the 90% T3 goal

T3 attempt-success SLI on a legal-reachable denominator — track the 90% T3 goal

vendor-class Chromium vs Firefox T4 engine A/B switch (anti-bot system class)

vendor-class Chromium vs Firefox T4 engine A/B switch (anti-bot system class)

persist a sanitized request-options snapshot per job (tier cap, render_js, timeout, BYOP flag, cost caps)

persist a sanitized request-options snapshot per job (tier cap, render_js, timeout, BYOP flag, cost caps)

Bug Fixes

27

repair stale tests failing on deploy

repair stale tests failing on deploy

retain pre-debited use_proxy add-on in worker reconciliation

retain pre-debited use_proxy add-on in worker reconciliation

block listed abuser IPs before the WAF skip rule and stop trusting crawler UAs

block listed abuser IPs before the WAF skip rule and stop trusting crawler UAs

revert cloud provider workers when the cloud provider deploy tail fails after the overlapped rollout

revert cloud provider workers when the cloud provider deploy tail fails after the overlapped rollout

avoid bare else under drone-ssh script_stop

avoid bare else under drone-ssh script_stop

CF edge rate-limit exporter fails every poll — zone lacks access to GraphQL path

CF edge rate-limit exporter fails every poll — zone lacks access to GraphQL path

SLA rules and SlaMeasurementAbsent select entrypoint=websecure; prod traffic is on web

SLA rules and SlaMeasurementAbsent select entrypoint=websecure; prod traffic is on web

synthetic probe unverified since 10-08 — SYNTHETIC_PROBE_API_KEY not provisioned

synthetic probe unverified since 10-08 — SYNTHETIC_PROBE_API_KEY not provisioned

pg-compose-drift can't read shared_preload_libraries as NOSUPERUSER alterlab

pg-compose-drift can't read shared_preload_libraries as NOSUPERUSER alterlab

discovery verifier status write fails with AmbiguousParameterError on reused :status bind

discovery verifier status write fails with AmbiguousParameterError on reused :status bind

deterministic sleep counts in T4 solver deadline tests

deterministic sleep counts in T4 solver deadline tests

anti-bot system T4 Firefox-route clearance regressed with the Windows Firefox identity (allegro 5/5 to 0/6)

anti-bot system T4 Firefox-route clearance regressed with the Windows Firefox identity (allegro 5/5 to 0/6)

validate impersonation bundles against real-browser captures; choose vendor engine/profile by telemetry (firefox135 23 majors stale, chrome150 JA4 skew)

validate impersonation bundles against real-browser captures; choose vendor engine/profile by telemetry (firefox135 23 majors stale, chrome150 JA4 skew)

static cloudflare_blocked and bot protection system edge-deny are identity-specific — rotate identity before concluding IP reputation

static cloudflare_blocked and bot protection system edge-deny are identity-specific — rotate identity before concluding IP reputation

capped/forced/breaker-skipped failures poison domain stats; fast-fail pauses domains for all customers without T4 evidence

capped/forced/breaker-skipped failures poison domain stats; fast-fail pauses domains for all customers without T4 evidence

nodriver anti-bot system fallback cannot resolve Chrome in the multi-stage worker image (and drops proxy credentials)

nodriver anti-bot system fallback cannot resolve Chrome in the multi-stage worker image (and drops proxy credentials)

origin errors, PHP fatals and bot challenges mislabelled soft_block / ip_rep / WAF

origin errors, PHP fatals and bot challenges mislabelled soft_block / ip_rep / WAF

reject render_js=true with request controls.max_tier<4 at submission instead of dispatch-then-fail

reject render_js=true with request controls.max_tier<4 at submission instead of dispatch-then-fail

CSR-shell heuristic rejects real pages with large inline hydration state

CSR-shell heuristic rejects real pages with large inline hydration state

corroborated Cloudflare 521/522/523 origin-down still escalates to T4 (~80s/job, 0 recoveries)

corroborated Cloudflare 521/522/523 origin-down still escalates to T4 (~80s/job, 0 recoveries)

Argon2 pool saturation returns 401 and records failed auth for the caller IP; legacy path has no per-key throttle (review finding — )

Argon2 pool saturation returns 401 and records failed auth for the caller IP; legacy path has no per-key throttle (review finding — )

worker test suite hangs at test_solver_direct_turnstile_emits_event_without_double_count (CI runner killed)

worker test suite hangs at test_solver_direct_turnstile_emits_event_without_double_count (CI runner killed)

key_id lock rejects a legitimate holder lacking a known-good marker (new, regenerated, dormant or post-flush keys) and gate rejections count as failed auth for the caller IP (review finding — )

key_id lock rejects a legitimate holder lacking a known-good marker (new, regenerated, dormant or post-flush keys) and gate rejections count as failed auth for the caller IP (review finding — )

165 recharge_attempts stuck pending since 2026-07-03 on one paying account

165 recharge_attempts stuck pending since 2026-07-03 on one paying account

cloud provider tail timeout or failed restore is reported as cloud provider restored and skips the cloud provider rollback leg

cloud provider tail timeout or failed restore is reported as cloud provider restored and skips the cloud provider rollback leg

retire OpenTable's hardcoded T4 pin and Shape misclassification (telemetry contradicts it)

retire OpenTable's hardcoded T4 pin and Shape misclassification (telemetry contradicts it)

Python SDK batch_scrape posts "requests" but API BatchRequest requires "urls" so every call returns 422; Node SDK fixed in same bundle (review finding — )

Python SDK batch_scrape posts "requests" but API BatchRequest requires "urls" so every call returns 422; Node SDK fixed in same bundle (review finding — )