I completed the Mighty Metropolitan for the first time yesterday. The confirmation came up on-screen, and I rode on for a couple of miles of warmdown, so there’s absolutely no doubt about finishing the route (I’ve done all the bit where you have to learn about run-ins, routes not being the expected length because of those, making sure you clearly go under the banner, and all that stuff).
Zwift Companion records yesterday’s activity and shows the “achievement” against it, confirming that I earned the badge. Zwift steadfastly, even after waiting overnight, refuses to show the badge as gained. How can they be inconsistent?
I mostly use an Android tablet (and exclusively for riding), but I do have the PC version installed (can’t ride with it, it’s a desktop with no chance of getting a bike near), and I’ve checked that too, not that I’d expect it to be different.