If you've migrated a JSM Assets schema to Cloud and your filters came back broken, empty, or quietly wrong — you're not alone, and it's not a misconfiguration on your end. It's a known gap in how migration tooling handles filters referencing Assets fields.
This guide covers why it happens and how to migrate Assets filter configurations correctly.
A Jira filter referencing an Assets custom field isn't just querying a value — it's querying a relationship between an issue and an object in your Assets schema. Assets custom fields support AQL-based filtering through their Filter Scope and Filter Issue Scope configuration, which constrains which objects appear based on object attributes and relationships. When the underlying object reference doesn't survive migration cleanly, the filter has nothing valid to point to. The clause itself often migrates as a definition; the part doing the actual filtering doesn't.
This is two query languages stacked together: JQL filters the relevant work items first, then AQL applies to the objects connected to that set. If either layer loses its reference during migration — the field configuration, the schema link, or the AQL scope itself — the chain breaks downstream, often silently.
Common symptoms:
${customfield_XXXXX${0}}) lost its linkThat last pattern is the one teams misdiagnose most often.
When an Assets custom field is linked to another Assets custom field whose Filter Issue Scope uses AQL referencing the first field, the AQL fails silently if that link didn't carry across migration. In practice: a "Services" field meant to filter by what's connected to a selected "Host" field returns zero objects — not an error, just an empty list — if the Host field's link didn't preserve correctly.
This is the exact pattern enterprise teams report: nothing looks broken in the UI, the field exists, the filter exists, but the relationship between them is gone. The fix requires confirming every Assets custom field on the issue screen or request form is aware of all the fields it references — even ones not directly present on the form.
If your migration approach doesn't explicitly test these field-to-field dependencies, this is exactly the kind of issue that surfaces weeks later as "the filter just stopped working."
JCMA moves filter definitions — the saved query structure — reliably for standard Jira fields. It falls short on clauses built on Assets custom fields and AQL-based object references, which don't survive in a way that keeps them functional. The filter exists in Cloud; the Assets-aware filtering inside it doesn't.
This extends to ordering logic too. AQL queries can be ordered with a suffix clause, and if the order-by attribute is a reference type, dot notation sorts by an attribute of the referenced object — for example, ORDER BY Department.Name. Multi-level reference chains like this break first, since they depend on more than one relationship resolving in sequence.
${customfield_XXXXX${0}} placeholder, confirm both fields are linked on the issue screen post-migration. This is the most commonly missed step and the likeliest cause of silent zero-result failures.Filter breakage is a symptom, not the problem. The problem is that the Assets field, object reference, or field-to-field AQL link underneath didn't migrate with full fidelity. Treating filter validation as part of your core Assets schema migration — not a cleanup task afterward — fixes the cause once instead of chasing every downstream filter, dashboard, and board individually.
With a pre-migration backup and object-level validation that includes field-to-field AQL dependencies, filter issues become rare rather than routine, because you catch the broken reference before it ever reaches a filter.
Assets filter migration isn't really about filters. It's about whether the schema underneath them — including the relationships between fields — migrated with its structure intact. Validate at the schema and field-link level first, and the filters take care of themselves.
Salome Ivaniadze Twinit
0 comments