Compliance-related defect workflow blocked after status transition

We have a compliance workflow for defect issues that requires specific field validation before moving to ‘Pending CAB Review’ status. After upgrading to Jira 9, defects are getting stuck immediately after transition - the status appears to change briefly, then reverts to the previous state with no error message visible to users.

Checking the workflow configuration, we have a custom validator on the transition that checks for mandatory compliance fields. The validator logic looks correct, but I suspect there’s a mismatch between our field configuration and what’s actually available on the transition screen.

Attempted validator check:


issue.getCustomFieldValue(complianceImpactField) != null
  && issue.getCustomFieldValue(regulatoryRefField) != null

The defects show these fields populated in the detail view, but the transition keeps failing silently. We’ve checked user permissions and they’re fine. Has anyone encountered hidden field requirements blocking workflow validators after a major version upgrade?

Checked the context - both compliance fields are scoped to ‘Defect’ issue type only, but our workflow also handles ‘Security Finding’ issues. That explains why some transitions work and others don’t. Do I need to expand the context to include all issue types using this workflow?

Yes, expand the context to cover all issue types in the workflow. After that, verify the fields appear on your transition screen (not just the view screen). Go to the workflow editor, click the transition, and check the associated screen under ‘View Properties’. The validator needs the fields to be both contextually available AND present on the transition screen to evaluate them properly.

Once you update the field contexts, you’ll need to perform a project re-index to ensure the workflow validator can properly access the field values during transitions. Here’s how to address this systematically:

Custom workflow validators on compliance transitions: Your validator is correctly checking for non-null field values, but it’s failing because the custom field context doesn’t include all issue types that use this workflow. Expand the context for both complianceImpactField and regulatoryRefField to include ‘Security Finding’ and any other issue types using the compliance workflow. Navigate to Admin > Issues > Custom Fields > [field name] > Configure > Edit Configuration Scheme, and add the missing issue types.

Field configuration vs screen mismatch: Verify that both compliance fields appear on the transition screen, not just the issue view screen. In your workflow editor, select the ‘Pending CAB Review’ transition, check ‘View Properties’, and confirm the screen includes both required fields. If they’re missing from the transition screen, the validator runs but can’t access the values users entered earlier. Add them to the screen via Admin > Issues > Screens.

Using logs to identify failing validator: The CustomFieldValueProvider: Unable to retrieve value error in atlassian-jira.log was the key diagnostic. Always check logs when validators fail silently - Jira 9 improved error handling but doesn’t always surface context/scope errors to end users. Enable DEBUG logging for com.atlassian.jira.workflow.validator if you need more detailed validator execution traces.

Re-indexing project after workflow change: After expanding field contexts and updating screens, run a partial re-index for the affected projects. Go to Admin > System > Indexing, select ‘Selective re-index’, choose your compliance projects, and include ‘Custom Fields’ in the re-index scope. This ensures the workflow validator can properly evaluate field values on all issue types. Full system re-index isn’t necessary unless you’ve made schema changes.

Test the transition with a defect and a security finding issue to confirm both types now progress correctly through the compliance workflow.

Silent workflow failures usually point to validator exceptions not being surfaced properly. Check your atlassian-jira.log for any stack traces around the time of the failed transitions. Look specifically for NullPointerException or custom field context errors - these won’t always bubble up to the UI in Jira 9.