Google's John Mueller said in a Google Hangout on Google+ last Friday that sometimes when href lang doesn't get picked up, it might be that the header section of your HTML is broken. When that happens, Google can't recognize that there is href lang code in there and doesn't show any href lang errors to you because it is not apparent to Google that the code exists there.
John Mueller answered this at the 19:23 mark into the video saying:
So it might just be that we don't recognize the hreflang markup at all on those pages.For example, what might happen is we can crawl and index those pages, but when we render those pages, something in the head section of the pages is added early on, and that kind of breaks everything within the head, which includes the hreflang markup.
So that might theoretically be happening. And if we can't find the hreflang markup at all, we won't flag it as an error, because we think there is nothing wrong with a page that doesn't have hreflang.
So that might be something worth double checking. So what you can do there is open the page in a browser and use Inspect Element to see what the rendered view of the page actually looks like. And then double check to make sure that within the head section there is actually nothing like non-meta tag type that's actually listed there.
Here is the video embed:
@rustybrick also rel-canonical
— Gary Illyes (@methode) July 6, 2016