Why might my document not show up at all in the prodigy UI?

I'm essentially using this -- https://github.com/explosion/prodigy-recipes/blob/master/textcat/textcat_custom_model.py

And for some reason the document/labeling options just are not showing up at all (see image). But if I click accept/reject/etc. then you can see in the history on the left that the text is there. Any ideas or other info that's needed?

Hi! That's definitely strange :thinking: Could you have a look at the browser's developer console and see if it shows an error there?

Ok, I found this, but I'm a complete newbie at the developer console, so I don't know what that means. :expressionless:

I'm now just getting the classic: " Oops, something went wrong :frowning:

You might have come across a bug in Prodigy's web app – sorry about that. We'd love to fix this, so feel free to open an issue on the Prodigy Support Forum and include the steps that led to this message."

Thanks for checking – and don't worry, the errors are always going to be cryptic. The only reason I can (usually) figure them out is because I wrote the underlying code :sweat_smile:

And I think I found the problem: in your screenshot, it shows "View ID: textcat_manual" – however, that's not an interface that exists. Maybe you meant choice?

So what basically happened here is that Prodigy tried to guess the view ID to use from the data, ended up with the wrong guess and then got confused. If you have "validate": true enabled in your prodigy.json, it should be able to catch errors like this before it even starts up the server.

Ok, I did what you suggested and this is what I'm getting. I think I had actually fixed what you meant already which is why the error is the same. Nonetheless, not sure what do to :open_mouth: I'll keep trying stuff, but if you have an idea, I'd love to hear.

Also here is my prodigy.json. Maybe something needs to change here which I haven't realized since I haven't needed to update it in quite a while.

"host": "",
"port": 9000,
"db": "postgresql",
"db_settings": {
"postgresql": {
"dbname": "prodigy",
"user": "blahblah",
"password": "fakepassword",
"port": 0001,
"host": "hostme"
"hide_meta": false,
"force_stream_order": "True",
"feed_overlap": true,
"validate": true,
"verbose": true

Updating to say I figured it out! I thought I read all the documentation, but there was more. :wink: Classic. Because this is a manual recipe, I needed to specify in each json that is sent in the stream the options.

Sorry about the noise over here! :woman_facepalming:

No worries and glad you figured it out! :+1: Prodigy could have definitely failed more gracefully here – I'll have a look and see if there's something we can add in terms of validation / data checks on startup!

1 Like