Rotation Engine
Runtime and Traffic
Start Rotation Engine local endpoints and interpret runtime traffic decisions.
Rotation runtime exposes a local HTTP/CONNECT endpoint and records why each proxy was selected or skipped.

Runtime Endpoint
The runtime binds to:
127.0.0.1:<bound-port>If the requested port is unavailable, ZeroTrace Proxy binds a random local port and records a notice.
Runtime Snapshot
| Field | Meaning |
|---|---|
| Active source | Source currently selected. |
| Active proxy | Proxy currently assigned. |
| Available proxy count | Proxies available for selection. |
| Cooling proxy count | Proxies temporarily paused after failures. |
| Quarantined proxy count | Proxies paused after reaching failure threshold. |
| Last switch reason | Why runtime changed proxy. |
| Request/success/failure count | Runtime totals. |
| Switch count | Number of proxy changes. |
| Bytes received/sent | Runtime traffic totals. |
Runtime Details
| Detail | Meaning |
|---|---|
| Listener | Local HTTP proxy and CONNECT tunnel listener. |
| Bind host | Always binds to 127.0.0.1. |
| Port fallback | Uses a random local port when the requested port is busy. |
| Health loop | Probes every proxy on the policy interval and updates latency/exit IP. |
| Availability counts | Tracks available, cooling, and quarantined proxy counts. |
| Session key | Uses a global key by default or target-host key when sticky target host is enabled. |
| Decision field | Explains the runtime choice for a request. |
| Log cap | Keeps the latest 500 traffic entries. |
Traffic Decisions
Traffic entries include a decision and reason. Common reasons include:
- new session
- sticky session reused
- status triggered rotation
- assigned proxy unavailable
- assigned proxy quarantined
- assigned proxy cooling
- assigned proxy over concurrency limit
- max session requests reached
- max session time reached
- max session bytes reached
- primary source exhausted
Troubleshooting
| Symptom | Check |
|---|---|
| Runtime starts but all requests fail | Source pool quality, health results, proxy protocol support. |
| Same proxy reused | Sticky sessions or session limits may allow reuse. |
| Too many switches | Rotate-on status codes or low session limits may be triggering changes. |
| No available proxies | Cooling/quarantine counts and health check errors. |
The Traffic page is the best place to understand why a rotator changed proxies.