Node for itemset doesn't exist issue

1. What is the issue?
I am getting the dreaded

Some background. I have a form with cascading dropdowns (Project/Site/ponds) which works just fine with some hand crafted csv files. XLSX extract as below:

I have a website which generates updated csv files with which I update the form automatically using API calls (create draft/upload csv files/publish form) And that all works.

However attempting to use the new form generates the error.

Furthermore if I replace the csv files with the old ones republishing the reverted form Android ODK Collect refuses to synchronise untill I shutdown and restart the Android app

2. What steps can we take to reproduce this issue?
Obviously I have compared the old and new files and they do not differ in format and records added do not look erroneous in anyway or contain potentially problematic characters such as quotations or slashes)

I have found the error to be irreproducible in the following sense. I created a cut down version of the form just using the first few lines of the excel sheet and updated its csv files with the ones which cause my main form to fail and the cut down test form works.

3. What have you tried to fix the issue?
See 2

4. Upload any forms or screenshots you can share publicly below.
I am happy to upload if this is useful

Version info:
894dc61c345edcc5998ab93a53e0d12ecc61a855 (v2023.1.0-2-g894dc61)
0b55d7d9f98f145c919c6e3476813275c4b69af7 client (v2023.1.0)
ad061f6088cf81c95bddf6f53310923cce9f76be server (v2023.1.0)

Is it possible that one of your CSV rows is missing a label? I think that's the error you would get in that case (and indeed it's not a very good one).

Thanks for your thought. Your suggestion was right but it was right not because the file I was uploading was wrong, but because I mucked up the upload API call and I was getting a corrupted file. Spent ages looking in the wrong place for the problem.

Thanks for your help

1 Like

I'm glad you figured it out! Could you please say more about what was wrong with the API call in case there are improvements to be made? Was it something like the mime type being wrong?