Identify third-party application issues
If you encounter an error during an OAuth flow, check if the application is a third-party application:- Client ID prefix: Third-party applications have a
client_idthat starts withtpc_. - Tenant logs: In Auth0 Dashboard > Monitoring > Logs, filter by the application to review error events.
Common errors
unauthorized_client when requesting tokens
Cause: The third-party application does not have a client grant for the requested API. Third-party applications always require an explicit client grant, even when the API access policy is set to Allow All.
Solution: Create a client grant for the application or configure default permissions for third-party applications. To learn more, read Application Access to APIs: Client Grants.
unauthorized_client even with “Allow All” API policy
Cause: The API’s access policy setting of Allow All applies only to first-party applications. Third-party applications always require an explicit client grant regardless of this setting.
Solution: Configure a default permission for third-party applications or create a per-application client grant.
invalid_request on /authorize with unsupported parameters
Cause: Third-party applications enforce strict parameter validation on the /authorize endpoint. Parameters such as screen_hint, login_ticket, invitation, request (JAR), and request_uri (PAR) are not supported.
Solution: Remove unsupported parameters from your authorization request. For the list of allowed parameters, read Security Controls for Third-Party Applications.
unsupported_response_type for id_token or token
Cause: Implicit flow (response_type=token or response_type=id_token) is not available for third-party applications.
Solution: Use response_type=code with PKCE.
No ID token returned from /oauth/token
Cause: Third-party applications with enhanced security controls do not return ID tokens or process OIDC scopes (openid, profile, email) in this release. The token endpoint will return an access token but no id_token.
Solution: Use API-scoped access tokens to retrieve the information your application needs. OIDC support for third-party applications is planned for a future release.
Grant type not supported
Cause: Onlyauthorization_code and refresh_token grant types are supported. Grant types such as implicit, password, client_credentials, and urn:ietf:params:oauth:grant-type:device_code are not available.
Solution: Update the application to use the Authorization Code Flow with PKCE.
Classic Login not working
Cause: Classic Login is not supported for third-party applications. Solution: Use Universal Login. Universal Login is the recommended login experience for all applications.Client ID starts with tpc_
Cause: Third-party applications automatically receive a tpc_ prefix on their client ID for traffic classification. This is assigned at creation and cannot be changed.
Solution: This is expected behavior. Update any client-side validation or database constraints to accommodate the longer client ID format.
Cannot change is_first_party or security mode
Cause: The security mode and application ownership are permanent design decisions set at creation. They cannot be changed afterward.
Solution: Create a new application with the desired configuration. You cannot convert an existing application between first-party and third-party, or between security modes.
Email verification or password reset shows an error page
Cause: The application’sredirection_policy is set to open_redirect_protection, which prevents Auth0 from exposing application.callback_domain in email templates.
Solution: Update your email templates with a Liquid conditional that provides a fallback for third-party applications:
redirection_policy to allow_always for trusted third-party applications created via the Dashboard or Management API. To learn more, read Security Controls for Third-Party Applications.
DCR client cannot access any API
Cause: Dynamically registered clients require default permissions configured before they can request tokens. Without default permissions, third-party DCR clients have no API access. Solution: Configure default permissions for third-party applications on each API the DCR clients need to access. To learn more, read Configure Third-Party Applications./userinfo returns error
Cause: The /userinfo endpoint is not available for third-party applications in this release.
Solution: Use API-scoped access tokens to retrieve the information your application needs. OIDC support, including /userinfo, is planned for a future release.
/oauth/revoke works but logout endpoints do not
Cause: Logout endpoints (/v2/logout) are not available for third-party applications.
Solution: Use POST /oauth/revoke to revoke refresh tokens. The application is responsible for clearing its own session state.