If forge lint misses a Jira request wrapped in a helper, do not assume the helper is the cause: Atlassian documents a specific limitation for Jira REST API v2 paths, but does not document how lint analyzes arbitrary helper functions or dynamic URLs. Trace the request to its final HTTP method and path, check the exact operation’s OAuth scopes, declare the minimum required scopes, then deploy and upgrade the app.
What Forge lint does—and what it does not establish
Atlassian describes forge lint as a way to help identify missing scopes. The forge lint --fix option can add detected missing scopes to manifest.yml; it is an aid, not proof that every request in the app has been covered. It does not remove redundant scopes, so review and remove unneeded declarations manually. See Atlassian’s scope setup and lint guidance.
As an Amazon Associate I earn from qualifying purchases.
There is one explicit Jira path limitation: Atlassian says Jira Cloud REST API v2 is not supported by forge lint; only /rest/api/3 paths are supported. That documented limitation can explain a missed v2 request. The cited documentation does not say whether lint follows custom JavaScript helpers, wrapper layers, or computed URL strings, so it does not establish that wrapping a request is itself the cause. See Atlassian’s REST API reference.
Trace the helper to the actual Jira operation
Scope requirements belong to the REST operation being called, not to the helper’s name. Follow the implementation until you know the final HTTP method and path sent to Jira. Resolve template strings, concatenated segments, and values passed through wrapper functions; then look up that exact operation in Jira’s REST documentation and read its “OAuth scopes required” field.
#1 Best Overall
- Inspect the helper implementation. Follow each call through any wrappers to the method and endpoint actually sent.
- Resolve the endpoint. Substitute runtime path values and determine whether the final path uses
/rest/api/3or/rest/api/2. - Check the exact operation. Use the OAuth scopes listed for that REST operation; do not infer a scope from the helper’s name or a similar endpoint. Atlassian explains this lookup in its permissions documentation.
Declare the minimum required Jira scopes
Add the operation’s required scope or scopes under permissions.scopes in manifest.yml. Atlassian recommends preferring a classic scope where one is available. Its Jira product scopes guidance also recommends keeping the app’s scope set below 50 where possible; this is guidance, not a guarantee of what any app requires.
Use forge lint --fix only for requests lint recognizes. Inspect the resulting manifest diff, confirm that all traced operations are covered, and remove redundant scopes manually after checking the app’s other Jira calls. Do not assume a clean lint result proves that unsupported or unrecognized requests have the correct scopes.
Rank #2
Deploy and upgrade before testing the new scopes
- Save the required scope changes in
manifest.yml. - Run
forge lintand review any warnings and manifest changes. - Run
forge deploy. - Run
forge install --upgradefor the relevant environment. Scope changes do not take effect until the app is upgraded, according to Atlassian’s scope workflow.
If the request still fails
Separate app authorization from the acting user’s Jira access. A declared app scope does not grant a user permission to view or modify a project or issue. If the operation’s scope is correct and applied, check whether the user who triggered the request has the relevant Jira product and project permissions. Atlassian describes this distinction in its Jira scope guidance.
Free tools Windows power users keep installed
One-click scans. No signup required.
If you need to determine whether a particular helper shape is missed by your installed CLI version, reduce it to a minimal Forge project and record the CLI version, request code, lint output, and expected scope. The official documentation cited here specifies the v2/v3 path limitation but does not promise static analysis of arbitrary helpers or dynamic URLs.
Quick Recap
Rank #4
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




