How reconcileIssues work for "parent in (...)" jql query

Hello,

As an app, we execute the JQL query parent in (Epic1, Epic2). We would like to utilize the /search/jql API to retrieve all child issues. However, it is unclear which issues should be included in the reconcileIssues parameter to obtain a consistent result. We understand that we do not pass many epics to the query and would like to include all of them in the reconcileIssues. Would this suffice, or are we required to include child issues as well?

1 Like

Hey, thanks for the question. If you want to have a consistent view in the example you specified, you have to include all children in reconcileIssues. This is because parent is an issue feature, → there’s no children field. There’s denormalization required to support the parent clause which results in eventual consistency.

What should I do in case when the issue with a parent from JQL is deleted? I cannot add it to reconcileIssues but I need a consistent search result.

So the scenario you’re asking “delete” about may mean two things, I don’t know exactly which one so let me tackle them separately.

  1. Issue is deleted from Jira completely.
    That’s correct, deleted issues are not supported today by reconcile flow, this was brought to our attention recently and it’s tracked by https://jira.atlassian.com/browse/JRACLOUD-93328. There’s no workaround at the present.

  2. Issue gets re-parented therefore “deleted” from previous parent.
    Example, Parent for Issue A as B and now it’s B. In this situation Issue A gets modified their ID should be passed to reconcile flow.

Hi everyone,

We recently completed a DC-to-Cloud migration (MigrationId: eb85eeb1-4969-4678-b6aa-fe1d27d41337, TransferId: 6b31156d-8ee9-5bef-b811-43b3102a6bcd) and are experiencing unexpected behavior with JQL queries involving parent-child relationships.

Issue:
Requests to the endpoint /rest/api/3/search/jql with queries like:

parent in (11312)

are returning empty results, even though the issues were successfully migrated and the parent-child relationship exists.

Request data - to check on your side:

  • No reconcileIssues parameter:
    • Response: empty
    • Request ID: atl-request-id: 73bdf5ab-4519-44c2-ae07-cc8c427c3287
  • Arbitrary value provided to reconcileIssues (even a random number, not an actual issue):
    • Response: expected issue(s) returned
    • Request ID: atl-request-id: d493b054-47ce-4745-b16b-b0e43275af6c

Question:
Why does the JQL request only return results when reconcileIssues is used—even with a non-existent issue ID? Is there a delay in indexing or a known workaround required post-migration to ensure parent-based queries work without this workaround?

Any guidance on the root cause and recommended best practices to prevent or fix this kind of issue would be greatly appreciated.