A user reported that the user's personal upload File:Kameldornbaum_Sossusvlei.jpg is appearing in CAT but with no label suggestions.
Here's what appears to have hapened:
- The image was loaded in CAT, and labels were requested
- One suggested Wikidata ID value (Q6484949) refers to a deleted item, so no text label was returned with it, and it was omitted from being shown in the voting UI.
- Votes were submitted for all suggestions but that one; four were accepted. A wbsetclaim request was made to set the four depicts statements.
- In the PageContentSaveComplete hook handler following the claim submission, the file was checked (again) for inclusion in CAT using TitleFilter, failed because it now had more than 1 (MachineVisionMaxExistingDepictsStatements) existing depicts statements, and the remaining, not-voted-upon label suggestion was marked withheld (-2).
- Now, when the user requests unreviewed personal images in CAT, the image is identified as a candidate for voting because it has one or more suggested labels in state 0 (unreviewed) or -2 (withheld), but the only suggestion remaining cannot be shown because it has no text label available.
Needed follow-ups:
- When a label suggestion is received by the frontend with no label provided, submit a 'not-displayed' vote on it if and when the user submits votes (T250742).
Optional:
- Improve detection of deleted Wikidata items when storing label suggestions so that invalid item IDs are discarded (and possibly removed from the mappings; see also T231105).
COVID-19 Deployment Criteria
- Can you roll back this change without lasting impact?
- A recovery plan is required as this will help identify our capacity for recovering from the failure
- THIS IS A KEY QUESTION, if you can’t answer it, you shouldn’t deploy
- Is specialized knowledge required to support this change in production? If so, are there multiple people with this knowledge?
- Is there a way to increase confidence about the correctness of this change?
- Reviews (Design, Code, etc)
- Testing coverage (unit tests, integration tests)
- Manual testing (e.g. Beta, vagrant, docker)