Undocumented and unannounced change to the Create Filter REST API

FYI for other vendors and impact heads-up for Atlassian.

The POST /rest/api/2/filter endpoint for creating a filter just changed, so it no longer permits a blank JQL string as the query for the filter.

There’s been no documentation change or update and no announcement of this as far as I can see so we couldn’t plan work to make the relevant changes.

The change broke a bunch of our automated tests and so our build pipelines were unexpectedly broken and we had to divert engineering effort away from planned feature work to investigate, validate and workaround this.

An announcement of API changes ahead of time would be much appreciated next time…

@jbevan,

That’s bad, if only because empty string is a valid JQL expression. You wrote the v2 endpoint and linked to v3. Is this news true for both?

Both versions of the endpoint are affected.

1 Like

@jbevan,

Thanks for sharing. I had a brief discussion with engineering. It was a surprise that the change broke anything. Can you confirm if your automated tests reflect app behavior? Or were they just careful attention to the API specification? And for anyone else, please do speak up up if your app broke.

We both agree that breaking changes should require API change notifications. I am looking into why & how the notice was skipped. However, if there are no broken apps, I fully expect we will “play it through” and just get the docs to retroactively reflect the change.

1 Like

Hi @jbevan ,

sorry to hear you are affected by the recent changes. There have been some improvements done to the create filter API and we were not expecting impact on the existing behaviour and use cases.
We’re ready to revert the jql property validation rejecting blank strings.
I will keep you informed.
Again, sorry for the inconvenience.

2 Likes

Thanks @KamilKozlowski and @ibuchanan - I appreciate your quick responses.

Given that blank JQL strings are valid queries, it MAY have broken for a user but its unlikely that they will have tried saving a blank filter via ScriptRunner Cloud or Enhanced Search. It was just our automated tests that broke: they used to set up blank JQL filters and subsequently validate that the filters are no longer blank after some business logic has been exercised.

@jbevan,

it should be now possible to provide blank JQL strings again.
Please check it out on your end.