Closed DavisRayM closed 4 years ago
Thanks for reporting this, @DavisRayM!
Do you intend on working on a solution to this issue, @DavisRayM? Asking before jumping in :)
Sadly, I'm a bit too swamped to work on this...
No prob! I'll take it :)
OK, so far, this is what I got:
I pulled the Untitled Form
that's currently available in the sandbox server, including 3 submissions.
This form has no version. Therefore its related metadata.json
file has a null version
property
This rules out just having null
version in the metadata.json
file as the single cause for the reported error, which indicates that the issue has a more complex cause
I was able to get an error if I pulled a form with a version and then, after closing Briefcase, I changed its version to null
in the metadata.json
file.
This is expected because we use a combination of the form's id and version as a key to identify forms and link them to their submissions. The error comes because there's a mismatch between the form's definition - which has version - and its metadata - which doesn't have version.
In any case, I'm not sure we should support this kind of scenarios where users tamper with files created by Briefcase.
Also, I'm not 100% sure this is what you originally did to get your error, @DavisRayM... Could you explain how to reproduce the error with more detail? Specifically, I'd be interested about:
Hey,
Onadata
aggregate server(https://odk.ona.io) - Form was built using the Form Builder
app present on the platform. Would it be inconvenient if i provided user credentials and a form that causes the issue for you to utilize in testing ?Not quite sure if this would be of help but noticed that the metadata.json
is a bit different from the one the Untitled Form
brings back.
{
"key" : {
"name" : "lets_try",
"id" : "aiw5KNVFDkB3TZWso5qpw4",
"version" : null
},
"formDir" : "forms/lets_try",
"hasBeenPulled" : true,
"cursor" : {
"type" : "empty",
"value" : null
}
}
Would it be inconvenient if i provided user credentials and a form that causes the uses for you to utilize in testing ?
Yes! :) You can send them to ggalmazor@gmail.com if you'd rather not publish them here ;)
Not quite sure if this would be of help but noticed that the metadata.json is a bit different from the one the Untitled Form brings back.
If you're referring to the different cursor structure., it's fine. It's because Ona and Aggregate use different cursor approaches.
Hey, sent the credentials.
Thanks!
I've been able to narrow down the cause of the problem. It turns out that when Briefcase asks Ona for the remote form list, Ona it's reporting that the Testing Form
has no version, and creates a metadata.json
file with a null
version accordingly.
The problem is that when the form is pulled, there's a mismatch between the form's definition, that has version v2E67Yj8FPMji2fK4r6bJ8
, and the metadata file, that has no version, and this is what's causing issues during export.
The bad news is that Briefcase doesn't expect to change identifying data such as the form's version when pulling them, which means that fixing this Briefcase-side will be a complex thing to do that will affect other pull sources too.
The easiest fix would involve Ona reporting the form's version correctly. ~I'll create an issue in their tracker to inform about this.~
We can keep this issue open for now, just in case.
The bad news is that Briefcase doesn't expect to change identifying data such as the form's version when pulling them, which means that fixing this Briefcase-side will be a complex thing to do.
The easiest fix would involve Ona reporting the form's version correctly. I'll create an issue in their tracker to inform about this.
We can keep this issue open for now, just in case.
Thank you, an issue to deal with Ona not returning a version has already been opened. Was just not quite sure if that was the only cause of this.
Feel free to comment or track the issue here
Thanks once again :)
Thank you @DavisRayM!
Closing this issue, since it looks like we're trying to address a solution in Ona first.
Software versions
Briefcase v1.17.1 & Briefcase v1.17.0
Problem description
Briefcase freezes while trying to export a form whose
metadata.json
has a null on theversion
. The logs show no error / warning and Briefcase just keeps infinitely loading.Steps to reproduce the problem
Set
version
tonull
in themetadata.json
of a form and try exporting the formExpected behavior
Briefcase should raise/log an error and stop exporting