---
schema_version: "1"
id: 1128c9c06c2cec178f9a390b8e5f330b4a3e2a627cd337844929edb81fd9e8a6
title: Troubleshoot Connected Apps - Direct Trust
collection: tableau
version: next
locale: en-gb
portal_url: https://docs.salesforce.com/tableau/next/en-gb/server-linux/connected_apps_troubleshoot.md
canonical_url: https://help.tableau.com/v0.0/server-linux/en-gb/connected_apps_troubleshoot.htm
source_site: help.tableau.com
content_type: documentation
content_hash: fe74b8d113eae70ef7991db50622857184b7fce56196a9969437d5e62e5303aa
description: Troubleshoot direct-trust connected apps when embedded content or REST API authorization fails.
---
[Skip to main content](#main-content)

# Troubleshoot Connected Apps - Direct Trust

When embedded content fails to display in your custom application or Tableau REST API authorisation fails, you can use a browser’s developer tools to inspect and identify error codes that might be associated with the Tableau connected app that’s used to display the embedded content.

**Note:** In order for the session token to be valid, the clocks of the external application and the server that hosts the external application must be set to Coordinated Universal Time (UTC). If either clock uses a different standard, the connected app will not be trusted.

Refer to the table below to review the description of the error code and potential resolution.

<table style="width: 90%;margin-left: 0;margin-right: auto;mc-table-style: url('Resources/TableStyles/Basic-Border-Light.css');" class="TableStyle-Basic-Border" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">Error code</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">Summary</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">Description</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1" style="font-weight: bold;">Potential resolution or explanation</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">5</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">SYSTEM_USER_NOT_FOUND</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Tableau user could not be found</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"> To resolve this issue, verify the '<code>sub</code>' (Subject) claim value in the JWT is 'username' for Tableau Server. This value is case sensitive.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">16</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">LOGIN_FAILED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Login failed</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">This error is typically caused by one of the following claim issues in the JWT:<ul><li>The '<code>exp</code>' (Expiry Time) exceeds the default maximum validity period. To resolve this issue, review <a href="https://help.tableau.com/current/server/en-gb/connected_apps.htm#jwt" target="_blank">registered claims</a> required for a valid JWT and ensure the correct value is used. To change the maximum validity period, you can use the <a href="https://help.tableau.com/v0.0/server-linux/en-gb/cli_configuration-set_tsm.htm#connectedapps_max_expiration_period" class="xref">vizportal.oauth.connected_apps.max_expiration_period_in_minutes</a> command.</li><li>The '<code>sub</code>' (Subject) is calling an unknown user. To resolve this issue, verify that the 'sub' claim is "username". This value is case sensitive.</li></ul></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">67</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">FEATURE_NOT_ENABLED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">On-demand access is not supported</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">On-demand access is available through licensed Tableau Cloud sites only.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">126</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">CONNECTED_APP_NOT_FOUND</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">The connected app could not be found</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">To resolve this issue, verify that the connected app is enabled and the correct client ID (also known as the connect app ID) is referenced in the JWT.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">127</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">CONNECTED_APP_SECRET_NOT_FOUND</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">The connected app's secret could not be found</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">To resolve this issue, verify that the correct connected app's secret ID and secret value are referenced in the JWT.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">128</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">CONNECTED_APP_SECRET_LIMIT_EXCEEDED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Maximum limit for secrets has been reached</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">A maximum of two secrets are allowed for a connected app. This error can occur when there's an attempt to create a third secret.<p>To resolve this issue, delete a secret from the connected app before creating a new one.</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">133</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">INVALID_CONNECTED_APP_DOMAIN_SAFELIST</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Domain allowlist contains one or more invalid characters</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">This error can occur when the domain allowlist contains one or more invalid characters.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10083</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">BAD_JWT</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT header contains issues</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">The '<code>kid</code>' (Secret ID) or '<code>clientId</code>' (Issuer) claims are missing from the JWT header. To resolve this issue, ensure this information is included.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10084</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT_PARSE_ERROR</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT contains issues</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">To resolve this issue, verify the following:<ul><li>The ‘<code>aud</code>’ (Audience) value referenced in the JWT uses the ‘tableau’ value. This value is case sensitive.</li><li>The '<code>aud</code>' (Audience) and '<code>sub</code>' (Subject) are included in the JWT.</li><li>Review IssueTime or ensure there's no clock mismatch between the machine hosting the connected app and Tableau Cloud.</li></ul></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10085</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">COULD_NOT_FETCH_JWT_KEYS</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT could not find keys</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">Could not find the secret.<p>To resolve this issue, verify the correct 'kid' (Secret ID) is used in the JWT header. </p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10087</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGN</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Issue with the JWT&nbsp;signing algorithm</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">To resolve the issue, you can remove the signing algorithm. For more information, see <a href="https://help.tableau.com/v0.0/server-linux/en-gb/cli_configuration-set_tsm.htm#eas_algorithms" class="xref">vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms</a>.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10089</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">CONNECTED_APP_NOT_FOUND</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Could not find connected app</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">To resolve this issue, ensure the issuer is calling the correct connected app ID&nbsp;(also known as the client ID). </td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10090</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">CONNECTED_APP_DISABLED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Connected app is disabled</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">The connected app used to verify trust is disabled. To resolve this issue, enable the connected app.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10091</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JTI_ALREADY_USED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Unique JWT&nbsp;required</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">The JWT&nbsp;has already been used in the authentication process. To resolve this issue, a new JWT must be generated.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10092</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">NOT_IN_DOMAIN_ALLOW_LIST</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Domain of the embedded content is not specified</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">To resolve this issue, ensure the <code>unrestrictedEmbedding</code> setting is set to <code>true</code> or <code>domainAllowlist</code> parameter includes the domains where Tableau content is embedded using the <a href="https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_site.htm#embedding_settings_for_site" target="_blank">Update Embedding Settings for Site</a> method in the Tableau REST API.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10094</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">MISSING_REQUIRED_JTI</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Missing JWT&nbsp;ID</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">To resolve this issue, verify the '<code>jti</code>' (JWT ID) is included in the JWT.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10096</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Issue with expiry time</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"> The '<code>exp</code>' (Expiry Time) exceeds the default maximum validity period. To resolve this issue, review <a href="https://help.tableau.com/current/server/en-gb/connected_apps_eas.htm#jwt" target="_blank">registered claims</a> required for a valid JWT and ensure the correct value is used. To change the maximum validity period, you can use the <a href="https://help.tableau.com/v0.0/server-linux/en-gb/cli_configuration-set_tsm.htm#eas_max_expiration_period" class="xref">vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes</a> command.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10097</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">SCOPES_MALFORMED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Issues with scopes claim</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">This error can occur when the '<code>scp</code>' (Scope) claim is either missing from the JWT&nbsp;or not passed as a list type. To resolve this issue, verify '<code>scp</code>' is included in the JWT and passed as a list type. For troubleshooting help with a JWT, see <a href="https://jwt.io/" target="_blank">Debugger</a> on the auth0 site.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10098</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT_UNSIGNED_OR_ENCRYPTED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT&nbsp;is unsigned or encrypted</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">Tableau does not support an unsigned or encrypted JWT.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10099</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">SCOPES_MISSING_IN_JWT</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Missing scopes claim</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">The JWT&nbsp;is missing the required '<code>scp</code>' (scope) claim. To resolve this issue, verify '<code>scp</code>' is included in the JWT. For troubleshooting help with a JWT, see <a href="https://jwt.io/" target="_blank">Debugger</a> on the auth0 site.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10100</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JTI_PERSISTENCE_FAILED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Unexpected JWT&nbsp;ID&nbsp;error</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">There was an unexpected '<code>jti</code>' (JWT&nbsp;ID) error. To resolve this issue, a new JWT&nbsp;with a new '<code>jti</code>' must be generated.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10103</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT_MAX_SIZE_EXCEEDED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT exceeds maximum size</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">This error can occur when JWT&nbsp;size exceeds 8000 bytes. To resolve this issue, make sure that only the necessary claims are being passed to <span class="mc-variable Variables.ProductName variable">Tableau Server</span>.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10105</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">ORIGIN_HEADER_NOT_A_VALID_URI</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Invalid Origin header</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">This error can occur because 1) a URL is specified in the domain allowlist and 2) the Origin header does not contain a valid URL.</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">10106</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">ORIGIN_HEADER_NOT_SET</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">Missing Origin header</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">This error can occur because 1) a URL is specified in the domain allowlist and 2) the Origin header is not set. </td></tr></tbody></table>