We just did a major revamp of how badges are awarded behind the scenes to drastically reduce the load on SQL Server. It now takes advantage of some pre-compute work we're doing to track badge progress in the profile.
However, I screwed up 2 queries, specifically the text names of the badges that prevent duplicate awarding. I was thinking to myself earlier "hey, maybe we should pass these in" as part of the rewrite - but it's not quite so simple. I'll take another look at this soon but when we're not fighting fires from a SQL Server upgrade. The cardinality changes which hosed some of the bigger badge queries needed urgent attention here, which ended up as a major revamp and introduced the 2 errors reported here.
Apologies for all the bad grants here - that certainly wasn't the intention. Due to how badges get tested, it's also not a symptom that shows up locally. If I can change this to a param exclusion passed by the code then things like this become far less likely to happen going forward.
I have cleaned up all achievements and grants associated with the bad code. User badge counts (on user cards and flair) will sync up tonight as part of a regular process.
Edit: If you're wondering why I had to address this quickly on the SQL Server front, here's the effect it was having and you can guess when the fix went out: