accept missing from stream

There is some bug with saving data to the sqlite DB. The ‘accept’ key is missing from the dataset dictionary even though I selected some options. This issue is happening almost 2% of the times in the whole data.
Please look into the issue let me know how to resolve it.


Hi! This is definitely strange :thinking: When you look at the examples, do you remember if those were examples where options were actually selected, or is it possible that those were examples where no options were selected? And are you using "choice_style": "multiple"?

The most likely exxplanation here would be that Prodigy doesn’t always correctly default "accept" to an empty list if the user doesn’t select an option. So the key is missing, when it should be "accept": []. It’s very unlikely that this is related to the data being stored – at least, it’s very unlikely that that one specific key would be randomly dropped from the JSON blob stored in the database.

Edit: Okay, I’ve confirmed that there was indeed a problem with the choice interface not always adding a default empty list as "accept". You can always work around this when you read the information from the data, but it’s definitely not ideal. I’ve already fixed this for the next release!

1 Like


Yes, I am aware of the part that the ‘accept’ key will be absent if the list is empty. But in my case the list is not empty, still the key is missing.

EDIT: There is one more issue: There is some untagged data left, even when the UI shows “No More tasks Available”. This was a bug in the previous versions, has it been resolved in the 1.7 version?

v1.8 makes sure that there’s always an "accept" key, even if no answers were selected. I’m pretty sure that this should solve the underlying problem here. It’s very unlikely that no "accept" options are added when the user selects them – the 2% rate at which this happens would be more consistent with the cases where the user just doesn’t select an option (or accidentally unselects). That said, if you can still reproduce the problem in v1.8, let me know.

Did you or the annotator reload the app at any point? If so, it’s possible that you end up with one unlabelled batch, since Prodigy has no way of knowing that it’s “not coming back”. You can find more details and an implementation example of an “infinite stream” here: "No tasks available" on page refresh

1 Like

Sounds like reloading can be causing an issue here. Will take care of that part and see if the problem still persists.