Skip to main content

Performance and limitations

FieldCraft, as an Atlassian Forge app, provides Calculated Custom Fields functionality and has some limitations due to the Forge platform's architecture.

Recalculation Triggers and Reliability Notes​

Use this section as the source of truth for when calculated field values are refreshed.

Guaranteed recalculation trigger​

  • Issue View: Field values are recalculated when a user opens an issue in Issue View mode.

Best-effort recalculation trigger​

  • Issue update events: Field values can be recalculated when an issue update event is captured by the app.
  • Due to Forge platform constraints, this trigger is best-effort and may occasionally be missed.

Not guaranteed​

  • Updates made through automation, REST API, or other background processes are not guaranteed to recalculate field values immediately.
  • If no guaranteed or best-effort trigger runs, values can remain stale until an issue is opened or reindexed.

When to run Reindex​

  • Run Reindex after major field configuration changes.
  • Run Reindex when you need up-to-date values on older issues that users have not opened recently.

⚠️ Key Limitations​

  • Issue View is the only guaranteed trigger
    Opening an issue in Issue View mode is the only guaranteed way to refresh calculated values.
    Changes made by automation, REST API, or other background processes are not guaranteed to trigger an immediate recalculation.

  • Old issues remain without values until opened
    If a custom field is added to existing issues, those issues will not have values until a user opens them.
    This means historical issues remain unchanged until accessed.

  • Recommendation for updating old issues
    To populate values for all existing issues when a new custom field is added, we recommend using the Reindex feature.
    This operation must be performed by a Jira administrator, as it triggers a full recalculation of custom fields across all issues.

These limitations are due to the way Forge handles background execution and cannot be bypassed at the moment.