OAuth Refresh Token Rotation Contains a Single Point of Failure for Unattended Integrations | The place for Zendesk users to come together and share
Skip to main content
July 30, 2026
Question

OAuth Refresh Token Rotation Contains a Single Point of Failure for Unattended Integrations

  • July 30, 2026
  • 4 replies
  • 81 views

Summary

Zendesk OAuth currently contains a failure scenario that can permanently break an otherwise healthy integration after a single transient infrastructure failure.

The issue is not related to OAuth itself, but to the way refresh token rotation is currently implemented.

If an application successfully receives a new access token and refresh token pair but cannot persist the new refresh token before an unexpected failure (application crash, database outage, network failure, process termination, etc.), there is no supported way to recover.

The integration permanently loses the ability to obtain new access tokens, even though the OAuth authorization itself remains valid.

For unattended integrations, this creates a single point of failure that application developers cannot eliminate on their own.

Why this matters now

The published API Token deprecation timeline makes OAuth the only authentication mechanism for the Ticketing, Help Center, and Voice APIs.

Once API Tokens are fully retired, this failure scenario becomes relevant to every unattended OAuth integration with no remaining authentication fallback.

Failure scenario

The sequence is straightforward:

  1. The application stores a valid access token and refresh token.

  2. The access token expires.

  3. The application requests a new token pair.

  4. Zendesk issues a new access token and a new refresh token while immediately invalidating the previous refresh token.

  5. Before the application successfully persists the new refresh token, an unexpected infrastructure failure occurs.

  6. The application restarts.

  7. The only stored refresh token has already been invalidated.

  8. The new refresh token has been lost.

  9. Token refresh is no longer possible.

  10. The customer must manually authorize the application again.

This is an irreversible failure caused by a temporary infrastructure issue.

Although the probability of this happening during any individual refresh operation is low, the probability approaches certainty over time for systems managing large numbers of OAuth installations.

Current behavior

Zendesk Support confirmed that this behavior is expected:

  • the previous refresh token becomes invalid immediately;

  • there is no grace period;

  • there is no idempotent refresh operation;

  • there is no token family or recovery mechanism;

  • manual customer re-authorization is the only supported recovery path.

Support also confirmed that this represents a real gap in the current implementation that cannot be solved by application developers.

The core issue

The problem is not that refresh token rotation exists.

The problem is that a brief infrastructure failure occurring during a very small time window can permanently invalidate an integration, with no possibility of recovery.

This makes the reliability of the integration depend on the successful completion of a single persistence operation.

In distributed systems, crashes, database outages, process termination, and network interruptions are expected events. A robust authentication system should tolerate these failures without requiring end users to manually restore authorization.

Possible approaches

The exact implementation is less important than eliminating the irreversible failure scenario.

Possible approaches could include:

  • allowing the previous refresh token to remain valid for a short grace period;

  • making refresh operations idempotent;

  • introducing refresh token family tracking;

  • allowing recovery of the latest refresh token within a limited time window;

  • or any other server-side mechanism that prevents permanent authorization loss after a transient persistence failure.

Request

I would like the product team to consider whether this architectural reliability gap could be addressed in a future release.

As Zendesk transitions to OAuth-only authentication, improving the resilience of refresh token rotation would significantly increase the reliability of unattended production integrations without reducing the security benefits of refresh token rotation.

4 replies

July 30, 2026

Thank you for taking the time to read this proposal.

I would like to hear from other developers who are building unattended integrations with Zendesk OAuth.

Have you encountered a situation where a refresh token rotation failed because the newly issued refresh token could not be persisted? If so, how did you handle recovery?

From my perspective, the main concern is not the probability of such a failure during a single refresh operation, but the fact that the failure is irreversible once it happens. Over a long period of time and across many installations, this becomes a reliability risk for production integrations.

I would appreciate any feedback, real-world experience, or alternative approaches that others are using today.

If you consider this a relevant reliability concern, please consider voting for the idea so it can receive more visibility from the product team.

Ahmed Zaid
User Group Leader
July 30, 2026

@Pedro Oneill,

This is very interesting. I am currently using a managed service (SaaS) to manage token lifecycle and rotation. I am considering building my own solution for 3rd party risk minimisation and cost saving. I guess other than having an air-tight DB and infrastructure, the important thing is to handle failure gracefully (e.g. notify admin about auth failure).

 

However, a grace period of old refresh token validity would be very helpful.

Ahmed Zaid (aidvisor.eu)
July 31, 2026

@Ahmed Zaid ,

Thanks for sharing your perspective.

I agree that notifications and graceful failure handling are essential. However, even with a highly reliable infrastructure, there is still an unavoidable failure window between receiving the new token pair and durably persisting it. A process crash, power outage, storage failure, or network interruption at exactly that moment can leave the integration without a usable token pair.

Notifying an administrator about the failure would certainly reduce the downtime, but it would still interrupt unattended processing and require manual intervention to restore the integration.

That's why I believe a short grace period for the previous refresh token (or another recovery mechanism) would significantly improve the robustness of unattended integrations without meaningfully reducing security.

Mike23
Newcomer
August 3, 2026

This issue is particularly important for background processes. In such scenarios, a single failure while persisting a newly issued token may cause the entire process to stop. Since the process continues to use the previously stored token, any subsequent token refresh attempts will fail, and the process will remain inoperable until the user intervenes manually.

This scenario should be addressed. The most robust solution would be to introduce a grace period for refresh token rotation, allowing the previous refresh token to remain valid for a short period after a new one has been issued. This would provide a recovery window during which the client could retry the token refresh operation using the previous refresh token if persisting the new token failed due to a transient error. Such an approach would significantly improve the resilience of long-running background processes without compromising security.

Serge Mak