Briefcase crashing

Hi,

ODK briefcase is crashing for me, failing to even start. I have searched the solution on the forum, which say to reset the storage folder and it will work. The problem is that I have huge data stored on the server (around 35GB+ with 6000 submissions), so I don't really want to re-download all of that data. Any way I could make it work? Even if I select new location, would it skip the previous-downloaded forms if I manually put uuid folders in instances folder? Desperately in need of a shortcut...

Here is the log:

2019-12-11 20:57:23,830 [main] ERROR o.o.briefcase.ui.MainBriefcaseWindow - Failed to launch GUI
java.lang.IllegalStateException: Duplicate key org.opendatakit.briefcase.model.FormStatus@35fe2125
at java.util.stream.Collectors.lambda$throwingMerger$0(Unknown Source)
at java.util.HashMap.merge(Unknown Source)
at java.util.stream.Collectors.lambda$toMap$58(Unknown Source)
at java.util.stream.ReduceOps$3ReducingSink.accept(Unknown Source)
.
.
.
.
.

Thanks,
Saad

Hi,

Have you tried to use the older version of the briefcase. I haven't tried the current version, used the previous version without any issue.

Thanks,
Imran

Hi, @Saad!

The error you've attached is telling us that there is a duplicate form in your storage directory. This is commonly due to duplicated form IDs and/or form names.

Given what you say about the big volume of submissions you need to manage, I'd suggest dividing your storage directory so that you don't have duplicates in them. Let's imagine your sd looks something like this:

  • sd
    • forms
      • Form A
      • Form B
      • Form C

Then, you could create a couple of new directories and move the form directories around so that it looks like this:

  • sd
    • forms
      • Form A
  • sd bis 1
    • forms
      • Form B
  • sd bis 2
    • forms
      • Form C

Then, you could start Briefcase and, in the Settings tab, change the storage directory and hit the "reload forms cache" button.

To make it more manageable, you can group forms that you positively know they aren't duplicates in the same storage directory instead of having one per form.

Also, answering your question:

Even if I select new location, would it skip the previous-downloaded forms if I manually put uuid folders in instances folder?

Briefcase uses an instance ID database inside each form's directory to know whether a submission has already been pulled or not. If you can find info.hsqldb directories inside the form directories, Briefcase should skip pulling all the submissions in your storage directory.