Hi all,
I’m building a Forge app using the rovo:mcp module to fetch
Jira worklogs and expose them as a Rovo agent tool.
The tool is correctly invoked by Rovo and parameters are
passed correctly, but api.asUser().requestJira() returns
undefined for all JQL searches.
From the logs I can see:
“userAccess”: {“enabled”: false, “hasAccess”: true}
The JQL is correct — when I run the same query as a site
admin it returns results. For regular users it always returns
undefined.
Things I have tried:
- api.asUser() and api.asApp()
- Adding/removing read:jira-user, storage:app scopes
- Multiple reinstalls including uninstall/reinstall
- App installed on Jira via admin panel
Manifest:
permissions:
scopes:
- read:jira-work
- read:project:jira
- read:jira-user
- storage:app
The official tutorial “Read Jira issues with a Rovo MCP tool”
confirms api.asUser() should work in rovo:mcp context.
Has anyone else experienced userAccess: enabled: false with
hasAccess: true? Is there a specific installation step needed
to enable user access for rovo:mcp tools?
Thanks
Hey ChingChiGigiCheung,
Thanks for trying out the new rovo:mcp module and for raising this question. Just a quick note that the “userAccess”: {“enabled”: false, “hasAccess”: true} log line you are seeing is related to User-based billing, which is currently in EAP and requires the app to be published, so if that doesn’t apply to you, this should not be impacting your app.
To help debug, could you share your App ID with us so I can take a look? Could you also click on the curly braces under an agent response and share the debug response with us (request ID, tool execution output). Could you also add a log line in the app function after the response and let us know what you see in the response when invoking it?
Could you also check if the user has access to the Jira project they are trying to access via the tool? Is the user able to run the JQL search from within Jira and see the same results as your admin query? If not, that would be a Jira permission issue.
Hi @DylanKroft ,
Thank you for your response. It was very helpful in pointing us in the right direction.
You were correct that userAccess: enabled: false was not the issue. After adding detailed logging to capture the raw API response, we discovered the actual problem: our code was calling /rest/api/3/search which has been deprecated and removed (HTTP 410). Jira was returning the error message directing us to migrate to /rest/api/3/search/jql, but we couldn’t see this without the raw response logging.
Once we updated the endpoint to /rest/api/3/search/jql and adjusted the pagination logic (the new endpoint uses isLast instead of total), the tool worked correctly.
The userAccess: enabled: false flag had been misleading us for a long time. It looked like a permission issue but was unrelated to the actual problem. Your clarification that it was related to User-based billing EAP helped us stop chasing that red herring and focus on the actual API response.
The agent is now working correctly. Thank you again for your support.
Gigi