Choice_filter (niveau = 1) fails with Collect 2024.1.1 but (niveau = '1') is ok

1. What is the issue? Please be detailed.

An old form is broken using last Collect version (2024.1.1).
We have an old form that was working fine on Collect 2023.3.0. But since Collect 2024.1.1 it is broken because of a choice_filter like niveau = 1 that fails.
The weird fact is that niveau = '1' works and niveau = 2works too.
We face the bug on both Samsung Xcover 5 (Android 13) and Crosscall trekker M5 (android 12)

2. What steps can we take to reproduce this issue?

Try this form and change the (dummy) choice filter from niveau = 1 to niveau = '1'

3. What have you tried to fix the issue?
Some tes to find the origin of the bug (appearance, choice_filter)

4. Upload any forms or screenshots you can share publicly below.
bug_choice_filter.xlsx (15,4 Ko)

1 Like

Hi @mathieubossaert, After I tested the XLSform you've provided. I couldn't find any differences between niveau = 1 to niveau = '1'.

Anyway, I think the choice is valid only based on the pre-selected choices and must match the choice name, in your example, there was nothing to do with the first question select_one region_biogeo so I don't think there is any benefit from adding the choice filter to it. while it is working in the second question based on the selected option in question 1


Thanks @Moteb_Marei
here is the screen for niveau = 1

and here the one for niveau = '1'

The bug occurs only with the first question. And I forgot to mention that the example is a dummy one as you noticed. And I agree we rarely use static values in choice filter conditions.

Thanks, @chrissyhroberts has also identified this one and alerted us to it. We're hoping to have a fix soon. As you've discovered, you can surround your integer values with quotes and that will continue to work even after the issue is fixed.

1 Like

Lolz! If Iā€™d seen this seven hours ago I would have saved myself seven hours.

Type mismatch?


Oh no! Your note to me made it seem so effortless. I'm sorry it has been such a time sink for both of you. Really appreciate you reporting and digging into it.

Exactly, type coercion isn't happening as it should in some of our new select filter caching implementation. Basically niveau = 1 ends up comparing niveau = 1.0. We believe we have a fix and if testing goes well it should be out in less than 24 hours.


Don't worry @LN that's just my wry British humour.

I spent Max 1.0 hours on this. Geddit? :crazy_face:


v2024.1.2 is now rolling out and should fix this issue. Thanks again for the helpful reports.

1 Like

Thanks the team for such a reactivity !

1 Like