Choice_filter (cascading select) resulting in HTTP Status 400 error on ODK Aggregate

Hi all!

1. What is the problem? Be very detailed.
I'm building a form with xlsx/Excel and for a set of questions I need to use the choice filter. Q1 is a select_multiple type with 27 possible answer choices that we want users to select 5 of. Q2 is rank type that asks them to rank the selected 5 in order of importance. I'm trying to use a choice_filter to refer to the selected answers in the previous answer and have Q2 be a rank question that only has them rank those 5 selected answers.

I've been able to convert to xlm both on XLSForm offline and on xlsform.opendatakit.org. When I go to upload the form to aggregate I get the error "HTTP Status 400 - Problem with JavaRosa Parsing Form: org.opendatakit.aggregate.exception.ODKIncompleteSubmissionData: Javarosa failed to construct a FormDef. Is this an XForm definition?"

Not sure if I haven't gotten the syntax right, if I'm missing a column somewhere, or if choice_filter is a function that isn't supported with the server we're using for ODK Aggregate?

2. What app or server are you using and on what device and operating system? Include version numbers.
Building the form in excel on a mac, converting to XForm using ODK XLSFrom Offline v1.11.1.
ODK Aggregate v1.4.15 Production

3. What you have you tried to fix the problem?
I have tried every solution I could find in the forum, from using a filter column in the choices sheet, to all the different versions of "selected(${VAR})" "selected(${VAR}, filter)" "selected(${VAR}, VAR)" "selected(${VAR}, name)" "selected(${VAR},name) = 'true' " and so forth...

4. What steps can we take to reproduce the problem?

5. Anything else we should know or have? If you have a test form or screenshots or logs, attach below.
I've included a test form with the questions that would be using cascading select and a screenshot of the error on Aggregate
ODKforum_testQuestionnaire.xlsx (15.5 KB)

Refusing to admit defeat, so any help is appreciated. Thanks!

Thanks for including your Aggregate version! I believe that the problem comes from your Aggregate version not supporting rank because it is too old (v1.4.15 is from July 2017). Unfortunately the error message is far from helpful.

The first thing I would recommend doing is uploading your form to the Aggregate sandbox to ensure that it does work with more recent Aggregate versions. You can immediately delete it if the form contents are sensitive.

If it does, please update Aggregate. If you are on AppEngine, you will upgrade to v1.7.4. Otherwise, you should upgrade to v2.0.5.

Hi Bridstone,

Have you tried to validate your form using ODKValidate? You should validate it before you upload your form to the server.

Hope this simple solution will work.

Cheers.

Thanks for your response!!
I also considered that being the issue, but I can get the rank type question to upload to Aggregate and work on ODK collect.
I just can't get the choice_filter to work. If rank is supported, is it possible for the choice_filter option to not be supported with the Aggregate version we are using?

Yes, ODK Validate v1.13.2 said my Xform is valid and there were no warnings.

Since rank isn't supported, Aggregate falls back to treating it as a string input type which is fine for a simple rank. I think that what's going on is that a choice filter doesn't make sense on a string input type so that is what causes the error.

2 Likes

We have upgraded our aggregate server and it works now. Thanks!

2 Likes