When you say "in Moscow" or any other city or place you change the ending - Москва, в Москве. Why you don't change ending for Sochi ?
I’ve heard people saying “в Сочах” and “в Гаграх”, where “Гагры” is also a town name in that region. Both have a grammatical form of plural words, but in fact they’re foreign words local languages, therefore, it is not correct to pluralize them in usual way. With foreign geographical names ending on “и” there is not change when used as a location. For instance “в Капри” (Italian town), “на Бали” (Indonesia). On the other hand “на Гаваях” is common for “Гавайи” (Hawaii). Confusing.