From 5299445330e848d8411bbacdee059985bc93fcc3 Mon Sep 17 00:00:00 2001 From: Raffael Schneider <77717645+raffaelschneider@users.noreply.github.com> Date: Tue, 16 Jun 2026 18:25:54 +0200 Subject: [PATCH 1/2] docs(routes): retry-policy parser landed; correct circuit-breaker scope notes The route-level retry-policy block is now parsed (zentinel#267): max-attempts is honored, the backoff/timeout/retryable-status-codes settings parse but are not yet applied (tracked in zentinel#279). Route-level circuit-breaker is still not parsed; upstream-level circuit-breaker is now supported (zentinel#260). Replaces the stale "dropped by the parser / tracked in #262" notes. --- content/configuration/routes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/configuration/routes.md b/content/configuration/routes.md index 06d54eb..2fd1a7c 100644 --- a/content/configuration/routes.md +++ b/content/configuration/routes.md @@ -748,7 +748,7 @@ Buffering is required for body inspection by agents. Be mindful of memory usage ## Retry Policy -> **Not yet implemented at route scope.** The route-level `retry-policy` block is documented but currently dropped by the KDL parser (the proxy logs `Unrecognized directive in route block (will be ignored)` for it). Tracked in [zentinelproxy/zentinel#262](https://github.com/zentinelproxy/zentinel/issues/262). Until the parser lands, this section describes the intended configuration only. +> **Behavior partially implemented.** As of [zentinelproxy/zentinel#267](https://github.com/zentinelproxy/zentinel/pull/267) the route-level `retry-policy` block is parsed. `max-attempts` is honored — it bounds the number of upstream peer-selection attempts. `timeout-ms`, `backoff-base-ms`, `backoff-max-ms`, and `retryable-status-codes` are parsed but **not yet applied at runtime** (the proxy logs that each setting is "parsed, but not implemented"). The remaining behavior is tracked in [zentinelproxy/zentinel#279](https://github.com/zentinelproxy/zentinel/issues/279). ```kdl route "api" { @@ -775,7 +775,7 @@ Backoff uses exponential delay: `min(base * 2^attempt, max)` ## Circuit Breaker -> **Not yet implemented at route scope.** The route-level `circuit-breaker` block is documented but currently dropped by the KDL parser (the proxy logs `Unrecognized directive in route block (will be ignored)` for it). Tracked in [zentinelproxy/zentinel#262](https://github.com/zentinelproxy/zentinel/issues/262). Upstream-level configuration via the `circuit-breaker` block inside `upstream { ... }` is in flight in [zentinelproxy/zentinel#260](https://github.com/zentinelproxy/zentinel/pull/260). Until the route-level parser lands, this section describes the intended configuration only. +> **Not supported at route scope.** The route-level `circuit-breaker` block is dropped by the KDL parser (the proxy logs `Unrecognized directive in route block (will be ignored)` for it). Configure circuit breaking at the **upstream** level instead — the `circuit-breaker` block inside `upstream { ... }` is supported as of [zentinelproxy/zentinel#260](https://github.com/zentinelproxy/zentinel/pull/260). The block below describes the intended route-scope configuration only. ```kdl route "api" { From 537bf14b533e6f31936d80886325fcfbb4beea09 Mon Sep 17 00:00:00 2001 From: Raffael Schneider <77717645+raffaelschneider@users.noreply.github.com> Date: Tue, 16 Jun 2026 19:49:36 +0200 Subject: [PATCH 2/2] docs(routes): correct upstream circuit-breaker attribution (#267, not #260) #260 was closed without merging; the upstream circuit-breaker config actually shipped via #267. Also note the known open-state recovery bug (#261). --- content/configuration/routes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/configuration/routes.md b/content/configuration/routes.md index 2fd1a7c..a9c4e55 100644 --- a/content/configuration/routes.md +++ b/content/configuration/routes.md @@ -775,7 +775,7 @@ Backoff uses exponential delay: `min(base * 2^attempt, max)` ## Circuit Breaker -> **Not supported at route scope.** The route-level `circuit-breaker` block is dropped by the KDL parser (the proxy logs `Unrecognized directive in route block (will be ignored)` for it). Configure circuit breaking at the **upstream** level instead — the `circuit-breaker` block inside `upstream { ... }` is supported as of [zentinelproxy/zentinel#260](https://github.com/zentinelproxy/zentinel/pull/260). The block below describes the intended route-scope configuration only. +> **Not supported at route scope.** The route-level `circuit-breaker` block is dropped by the KDL parser (the proxy logs `Unrecognized directive in route block (will be ignored)` for it). Configure circuit breaking at the **upstream** level instead — the `circuit-breaker` block inside `upstream { ... }` is parsed and configurable as of [zentinelproxy/zentinel#267](https://github.com/zentinelproxy/zentinel/pull/267). The block below describes the intended route-scope configuration only. (Note: recovery from the open state has a known bug — see [zentinelproxy/zentinel#261](https://github.com/zentinelproxy/zentinel/issues/261).) ```kdl route "api" {