When you say "in Moscow" or any other city or place you change the ending - Москва, в Москве. Why you don't change ending for Sochi ?
5Sochi is indeclinable because it is a loan word. It has no ending.– AnixxMar 2, 2014 at 14:21
7There is a good joke based on the same problem: "Человек человеку — волк" а "зомби зомби — зомби".– ArtemixMar 3, 2014 at 10:40
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.
1Also, depends on the case, in accusative it is always "в Сочи" (cf. "в Москву"), in prepositional you may hear both: в Сочи / Сочах (the second being a non-standard form) (cf. в Москве) Mar 18, 2014 at 22:02