[New Feature] Version 7: changing how constraints work with empty lists

Hi everyone,

We’re changing how “Ignore empty constraints” works when 1) the constraint type is “is in” or “isn’t in” and 2) the constraint value is an empty list.

In the past, here’s how these constraints were evaluated with an empty list as the value:

old “is in” “isn’t in”
“Ignore empty constraints” true false true
“Ignore empty constraints” false false false

Here’s a table of how these constraint types will behave in the future when the value is an empty list (with changes italicized):

new “is in” “isn’t in”
“Ignore empty constraints” true true true
“Ignore empty constraints” false false true

We hope this will make the constraints work in more intuitive fashion!

In the next few days, we’ll be deploying this functionality in a new version of Bubble that you will have to upgrade to in the “Settings” tab of the editor, under “Versions”. We’re deploying this as a new version because, if your app uses search constraints fitting the above description, this change will affect your app’s behavior – so please double-check your constraints before upgrading!


You have listened to my prays!
I can’t wait to test it but I believe this will save me from a very confusing RG filtering setup I had to do in order to deal with empty lists!

Thank you so much for this!

1 Like

That’s great ! That will help to reduce the number of requests with :merged with.

In order to help us review our apps when upgrading, @chris3 @allenyang would it be possible to add a search uses operator (or anything equivalent) ? so we can update all our requests using is(n’t) in.

That would also be useful to look for all requests using the :advanced filter.

Hi @nicolas_dap – including this in “App search tool” is a great idea; we’ll be rolling that out this week alongside the new constraint semantics!

1 Like

I use this quite frequently - I can’t quite wrap my head around this change (brain is working slow today). Could some examples be provided on how this works? Nervous to upgrade before I fully understand the change.

1 Like

Hey folks!

A short, plain-language version of the change to supplement @chris3’s lovely chart:

Prior to change: if you had a sort/filter that depended on a list of things (added in multidropdown, for example), and the list of things was empty, this did not read as an empty constraint.

Now: if the list is empty, it counts as an empty constraint.


Nice - Thank you!

Awesome :+1: thanks Bubble

Quick heads up: this new version may have problems with the “email =” constraint. Please stay on v6 or lower until further notice.

On a positive note, I applied the upgrade before seeing this heads up and it seems to be behaving as expected. I don’t have any “email =” constraints.
Another positive is that the empty search loads faster, which makes sense since there is no need to load the list that the constraint was previously looking at.

Thank you Bubble!


The “email =” constraint is now fixed – you can safely upgrade to version 7 now.

1 Like

I am deleting a list of everything in this ‘thing’, so I have no constraints so that all items are deleted rather than specific items. To continue this in version 7 do I need specify a constraint, or should it not matter? Thanks!

1 Like

Hi @Drahgoone – this change only affects searches using the “in” and “not in” constraints, so your search (which has no constraints) won’t be affected. In case the question stemmed from “empty lists” in the thread title – this change affects behavior when the value of a constraint is empty (“value” being “V” in an expression like “Search for things where field is in list V”), not when “List to delete” is empty (or being emptied).

1 Like

“Has constraint” is now available in the App Search Tool:


Sweet! Thank you.

The new version either isn’t working or I don’t understand the new behavior. I have a page where the search constraint is: “unique id = get unique_id from page URL”. The new version is returning all results from the database and not matching the search.

@jaredg You’re right, thanks! We’ve rolled out a fix.

1 Like

hey @chris3 - do you know if there is also a way to search for an operator? For example, I’d like to convert my :join with “,” to format as text.