Skip to content

Persist Quick Tunnel rate-limit cooldown across supervised restarts #13

Description

@RobLe3

Context

FORGE WQ-186 / iicp.network#570 researched stable relay fallback beyond accountless Cloudflare Quick Tunnel rate limits.

The Python client already detects Cloudflare Quick Tunnel rate limits such as HTTP 429 / error code 1015 and applies an in-process cooldown via IICP_TUNNEL_RATE_LIMIT_COOLDOWN_S. That prevents churn inside one running process.

Remaining gap

The cooldown is process-local. Under service or Docker supervision, a crash or restart loop can forget the cooldown and attempt another accountless Quick Tunnel creation immediately, recreating rate-limit pressure.

Desired behavior

  • Persist a coarse quick_tunnel_rate_limited_until marker in the node state/config directory.
  • Check the persisted marker before spawning accountless cloudflared tunnel --url ....
  • Keep IICP_TUNNEL_RATE_LIMIT_COOLDOWN_S as the operator override.
  • Preserve verified direct endpoints and IICP_PUBLIC_ENDPOINT behavior exactly as-is.
  • Keep accountless Quick Tunnel as a fallback, not a production relay requirement.
  • Add tests proving supervised restarts respect the persisted cooldown and do not affect direct/public-endpoint paths.

Acceptance

  • A rate-limited tunnel attempt suppresses later attempts after process restart until the cooldown expires.
  • Existing reachability/tunnel tests still pass.
  • Error/log output remains operator-actionable: configure a stable public endpoint / named tunnel for production relay use.

Related: RobLe3/iicp.network#570 and #538.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions