Uploaded image for project: 'Xray for Jira'
  1. Xray for Jira
  2. XRAY-11720

Advanced filter fails on JSM Test Executions - validateJqlExpression throws when atl_token input missing

    XporterXMLWordPrintable

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • Xray DC 8.4.0
    • None
    • Filters
    • None
    • Xray Data Center

    • UNCOVERED

    Description

      Description

      Advanced filter in Test Execution issues fails on JSM/Service Desk projects. The validateJqlExpression() function in filter-picker-util.js attempts to read the CSRF token from a legacy hidden form input (input[name="atl_token"]) that JSM pages do not render, causing a TypeError when querySelector returns null and .value is accessed.

      Pre-conditions

      • JSM (Jira Service Management) or Service Desk project
      • Test Execution issue view open
      • Attempting to use Advanced filter with any JQL query

      How to reproduce

      1. Open a Test Execution issue in a JSM/Service Desk project
      1. Navigate to Filters > Advanced
      1. Enter any JQL query (e.g. assignee = <user>)
      1. Attempt to apply the filter

      Actual result/Attachments

      The filter dialog hangs in a loading state and the JQL validation POST request is never sent. Browser console shows: "Uncaught TypeError: can't access property 'value', document.querySelector(...) is null" thrown from validateJqlExpression() in raven-common-components-filters-picker / filter-picker-util.js. On intermittent page-load timing variations, the input may contain the string "undefined", producing a 403 response instead. Support zip and webm recording of the issue available:

      Jira_node1_blb48020_support_2026-06-10-14-53-23 (1) (1).zip

      bug_advanced_jql_inTPTE (1).webm

       

      Expected result

      The Advanced filter should validate the JQL query and return matching tests without error. POST /rest/raven/1.0/jql/validation should complete with a 200 response and display results.

      Version

      • Xray Data Center 8.4.0-j10
      • Jira 10.3.17

      Workaround

      Yes. Open DevTools Console, paste the following snippet, and press Enter. Without reloading, the Advanced filter will work for that session:

      document.querySelectorAll('input[name="atl_token"]').forEach(el => el.remove());
      const token = document.querySelector('meta[name="atlassian-token"]').content;
      const input = document.createElement('input');
      input.type = 'hidden';
      input.name = 'atl_token';
      input.value = token;
      document.body.appendChild(input);
      console.log(token); 

      The permanent fix must be applied in validateJqlExpression() to read the CSRF token from meta[name="atlassian-token"] (standard Atlassian convention, present on all page types) instead of relying on the legacy input[name="atl_token"] selector.

      Attachments

        Issue Links

          Activity

            People

              joana.fonseca Joana Fonseca
              kiran.kumar C Kiran Kumar
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated: