Troubleshooting troubleshooting
IMPORTANT
Adobe LLM Apps is currently in Beta.
Features, workflows, and UI shown here do not necessarily represent the final state of the product. To join the Beta, send an email to llm-apps-beta@adobe.com.
Start with the observable symptom. Do not share credentials, tokens, private MCP URLs, or sensitive handler results while troubleshooting.
App creation and action generation
Symptom
What to try
Adobe managed infrastructure setup fails
Read the error under Setup failed, then select Retry. If the page cannot check progress, select Check again; setup continues in the background
No AEM program is available
Ask your administrator for program access. If loading failed, select Retry loading programs
New repositories do not appear
Use Connect another repository to grant the Adobe LLM Apps GitHub App access, return to the wizard, and select Refresh organizations and repositories
Action or widget repository validation fails
Use a compatible existing project or an empty repository. Use separate repositories for actions and widgets, then select Validate repository again
AEM Code Sync is not detected
Install AEM Code Sync for the widget repository, add yourself as a site administrator on its confirmation page, return to the wizard, and select Validate AEM Code Sync installation
Creating the app did not generate actions
App creation only sets up infrastructure. On the app page, select Build actions automatically, enter Your website, and select Build my actions. See Create actions
Actions are still generating
The UI estimates up to 30 minutes for generation. Follow progress on the Actions page, or leave the page and return later
Action generation reports failure
Confirm the website is public over HTTPS and, for your own repositories, that repository access is still valid. Contact the Beta team with the visible error message if the problem persists
Actions and handlers
Symptom
What to try
Action is not invoked
Enable the app’s plugin or connector in the conversation. Confirm Expose to AI model in the action settings and the action’s Visibility switch on the app page are on. Improve the description and redeploy metadata changes
Empty or error response
Run
npm test, then call the handler with MCP Inspector or curl. See Local handler development and testingHandler works locally but not after deployment
Check the latest pushed commit, confirm the runtime configuration, and verify that the action code identifier matches
actions/<code-identifier>/index.jsGenerated action cannot be marked as reviewed
Confirm handler and widget generation succeeded. Check the generated pull requests for merge conflicts, reload the action, and select Mark as reviewed again
Widgets
Symptom
What to try
Widget does not render
Verify the Script URL, Widget URL, HTTPS, EDS publication, CSP domains, and CORS headers
Widget renders but shows no data
Call the handler with MCP Inspector and compare its
structuredContent shape with the fields read from bridge.toolResultWidget works in direct preview but not in ChatGPT
Direct preview might use sample data. Test the deployed handler result and verify the EDS origin is allowed by CORS and CSP
Browser request is blocked
Add only the required origin to the correct CSP field and redeploy
HTTP Headers Editor cannot save the configuration
Use the AEM Configuration Service or ask the EDS administrator to initialize the site headers configuration
Do not log complete bridge.toolResult values when they can contain personal or sensitive data.
Deployment
Symptom
What to try
Deployment fails during Preparing
Verify the handler repository is linked and your Adobe Developer Console access is still valid
Deployment fails during Build app
Run
npm install, npm test, and npm run build locally. Fix dependency, syntax, or test failures and push the changesDeployment succeeds but changes are missing
Confirm the expected commit was pushed and redeploy to the same environment
Action remains Not deployed
Deploy again after reviewing the action or changing its metadata
Authentication authentication
Applies when Enable authentication is on. See Authenticate end users with your own identity provider.
Symptom
What to try
Actions are still public after saving the settings
Deploy the app again to that environment. Authentication changes take effect on the next deploy
Settings look wrong after switching environments
Confirm the Workspace picker shows the environment you intended. Stage and Production are configured independently
Sign-in does not start
Confirm that you deployed the app after enabling authentication and that the action uses Required. An Optional action only prompts when its handler asks for sign-in
The platform sends the user to the wrong sign-in page
Verify Issuer exactly matches your identity provider’s issuer URL, and that it is reachable over public HTTPS
Sign-in succeeds but every call is still rejected
Confirm your identity provider issues tokens whose audience is the app’s MCP server URL for that environment, and that the token is a JWT signed with an asymmetric algorithm. See Token requirements
The identity provider never receives any traffic
Your provider’s discovery, authorization, and token endpoints must be reachable over public HTTPS. Check for a firewall, WAF, or IP allowlist in front of it — your app can be reachable while your provider is not
The identity provider refuses to issue a token for the requested audience
Some providers only issue tokens for a resource that is registered with them. Confirm the app’s MCP server URL is registered as a resource identifier in your identity provider
A newly added scope is not requested at sign-in
LLM platforms cache the app’s published metadata for a few minutes. Wait, then retry the sign-in
The user is asked to sign in again for a scope
The action requires a scope the token does not carry. Add the scope to the client’s grant in your identity provider, or remove it from the action
The user receives repeated sign-in prompts
A handler that returns
extra.challengeAuth() on every call without checking the caller’s identity requests sign-in again after authentication. Request authentication only when the identity the action needs is missingThe sign-in is rejected before the user reaches your identity provider
The redirect URI the LLM platform sent is not registered with your authorization server. Some platforms issue a different one for each connector, so register the value shown on the connector setup screen
Save is blocked with an unsupported scope message
Add the scope to Scopes supported, or remove it from the action that requires it
A public action still prompts for sign-in in Claude
Check that the connector uses Sign in when needed, not Sign in now. For an older deployed app, update the runtime and redeploy. A mixed app on the current runtime leaves public actions callable anonymously
An Optional action returns sign-in text but no Claude sign-in prompt
extra.challengeAuth() is a ChatGPT tool-result challenge. For a portable sign-in gate, use a Required action so the runtime returns the HTTP challenge Claude expectsThe app prompts for sign-in even though every action is None
Turn Enable authentication off and deploy. While it is on, the app advertises an authorization server even when no action is gated
Do not paste access tokens, claim sets, or identity provider client secrets into a support request.
ChatGPT plugins
Symptom
What to try
Plugin does not appear
Open chatgpt.com/plugins, confirm that your account or workspace allows custom MCP servers, and install or connect the resulting plugin
Plugin creation fails
Copy the full HTTPS MCP server URL again from Test the app and choose the authentication method matching the app. Use No Auth only for a public app, not as a workaround for failed OAuth
Plugin connects but cannot invoke actions
Confirm the plugin is attached to the chat, the actions are exposed to the model, and the latest version is deployed
Plugin uses the wrong environment
Edit or recreate the plugin with the intended Stage or Production MCP server URL
Plugin still shows old action metadata
Deploy the changes, select Refresh on the ChatGPT connection, then start a new conversation
If the issue persists, record the app name, environment, failed step, time, and visible error message before contacting the Beta team. Do not include secrets or sensitive customer data.
recommendation-more-help
llm-apps-help-main-toc