Zwift support says:
Because many of the routes in Zwift include a lead-in, which isn’t part of the distance shown in Zwift, it’s sometimes hard to know when the route actually ends (though it does look like you completed it). We generally recommend continuing to ride until the achievement pops up on your screen. Additionally, I’m sorry for the trouble, but we don’t have a way to manually add badges to your account.
That being said, we’ve received a number of reports of badges not being awarded even when passing the intended ending of the route, which has been confirmed to be a bug.
I’ve checked with our team and they’re working on a fix. While there isn’t a work-around for this issue as of yet, the fix will come from our end and all you should have to do is keep your Zwift app up to date.
We appreciate your patience and understanding as we continue improving Zwift. Please let us know if there’s anything else that you need assistance with; we’d all be more than happy to help!