Google relies on several signals to determine the language of a user. And Google's algorithms like most machine learning algorithms are not always hundred percent correct. For example, browsing history is an important factor. But a user can browse sites in different languages. In such a case, Google determines your language based on its algorithms which can be imperfect due to conflicting signals.
So it is always a good idea to have a language switcher (like a dropdown). Thus a user can navigate to the correct version if Google leads him to another.