Forge issue-updated trigger hitting rate limits even when no logic runs

Hi everyone,

I’m experiencing persistent rate limit errors related to Jira issue update events and I’m trying to understand whether there is a platform-level rate limit on the issue-updated trigger itself.

Architecture

I have two Forge apps in the same Jira site:

  • App A: updates issues via a scheduled job

  • App B: listens to avi:jira:updated:issue events and conditionally pushes jobs to a queue

Initially, App B was doing some processing and queue pushes, and I started receiving frequent rate limit errors in the Developer Console metrics.

To isolate the source, I modified the issue-update trigger in App B to immediately return for this site (cloudId), so that no logic runs at all:

if (event.context?.cloudId === "<site-cloud-id>") {
  return true;
}

So effectively:

  • the trigger fires

  • no API calls

  • no queue push

  • no processing

However, I still continue to see rate limit errors associated with the issue-update trigger metrics in the Developer Console (see screenshot).

This makes me suspect that:

:backhand_index_pointing_right: the rate limit may be applied at the event delivery / trigger invocation level,
not only to API calls or app logic.

Questions

  1. Is there a documented rate limit for Jira issue events (avi:jira:updated:issue) per app or per site?

  2. Can issue updates generated by another app on the same site cause trigger rate limiting even if the consumer app does nothing?

  3. Are event deliveries counted toward Forge invocation limits even when the function returns immediately?

  4. Is there any way to throttle or filter issue-update triggers at the platform level (before invocation)?

Thanks in advance — any clarification on Forge event rate limits would be very helpful.

3 Likes

Hey! Had the same issue, here’s what I found:

  1. Yes, every event delivery counts as an invocation even if your function returns immediately.
  2. Yes, any issue update from any source (users, other apps, automations) triggers your handler.
  3. No published per-event rate limits, it’s all part of your app’s general invocation quota.
  4. Solution: use filter.expression in manifest, filters events at platform level, before invocation. Docs: https://developer.atlassian.com/platform/forge/manifest-reference/modules/trigger/
1 Like