Visual RFC.
ALL RFCs / RFC 8628
Read the RFC ↗
RFC 8628 / Device authorization

Wait correctly between token requests

03

Polling is deliberately paced. Pending responses, slow-down responses and transport timeouts have different effects on the next request.

RFC 8628 · § 3.5EXAMPLE
4 / 4
Wait correctly between token requestsBounded polling example Timeout: recommended doubling example. Real 0 to 40 second axis. Selected wait spans 20 to 40, a duration of 20 seconds. Timeout doubling is recommended policy, not mandatory multiplier; interval is not reset after slow down.Pace every new token requestTimeout: recommended doubling example0510203040Time in seconds · linear scale20 seconds before next requestResponse/timeout at t=20Next request no earlier than t=40Conservative response-time anchor · not a real scheduler
04
Back off after a connection timeout

Separate transport event: reduce frequency before retrying. Doubling ten to twenty seconds is the illustrated RECOMMENDED exponential policy, not a mandated multiplier.

Source for this drawing: RFC 8628 · Read RFC section 3.5 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

A slow_down adds five seconds permanently for this polling session.

  • When authorization_pending is returned, the client SHOULD repeat its token request. Before each new request it MUST wait at least interval seconds, or five seconds if the device response omitted interval, including any slow_down increases (§§3.2,3.5). Polling is not a tight retry loop.
  • On slow_down, authorization is still pending, but the interval MUST increase by five seconds for this and all subsequent requests. It is neither reset on the next authorization_pending response nor merely a one-time five-second pause (§3.5).
  • On a connection timeout, clients MUST reduce polling frequency before retrying. Exponential backoff, such as doubling the interval, is RECOMMENDED rather than mandatory. A timeout is a transport event, not an OAuth slow_down error (§3.5).
  • The worked timeline uses a five-second starting interval, successive response times 0/5/10/20 seconds, and a recommended doubling example after timeout. Waiting is anchored conservatively at each response/timeout timestamp. No server latency, real clock, retry jitter or universal timeout policy is specified.
  • Only authorization_pending and slow_down errors allow continued polling. Any other error code MUST stop polling. Success also ends this example polling session. Expiration and denial are not instructions to keep trying the same code (§3.5). A negotiated return-channel alternative is outside this specification.
DETAILS

All intervals are seconds, and the timeline uses a real linear 0–40 scale. The helper is a bounded offline policy example, not a complete OAuth client or scheduler.

Read the RFC section ↗

All chapters in RFC 8628

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗