For some other custom recipes I wrote, if there is error, there would be error message which line has issue. I'm not sure if it's because "view_id" is "image.manual" in this case.
-Yiwen
Not sure if this helps but as well as running from the command line, you can run your recipe from the python script - add the following to the bottom of image_bb.py:
Are you 100% sure that the file path is correct and the file exists? That specific error message is raised if Path(file_path).is_file() doesn't return True, so if the path you're providing is not considered a file.
Are you calling add_tokens? Do you need to do that if you're not using text annotation - the example doesn't? I'm only familiar with text annotation but the stack trace implies to me that it's looking for a text rather than image key.
Yes, that's also how it looks to me! You shouldn't need to add tokens if there's no text, and if there's no text, add_tokens will raise an error.
Where does your filename come from? Is it a local path or an URL? If it's your local path, that wouldn't work in the UI, because pretty much all modern browsers block images from local paths for security reasons. So you can either load from a URL, a local web server, or convert the image to a base64-string you can send inline with the JSON. Prodigy's Images and ImageServer loaders can help you with that. Also see here for details: