Your App might have this issue if you use multithreading server. It's not a bug Rails, but on your app if you don't put before_filter to all controllers. Open this Pull Request for the details https://github.com/rails/rails/pull/34356, https://github.com/rails/rails/issues/34043, and https://github.com/svenfuchs/i18n/issues/381.

To prevent this issue, change how the way you set I18n.locale = locale code to be in around_filter block, not before_filter

around_filter :switch_locale

def switch_locale(&action)
  locale = params[:locale] || I18n.default_locale
  I18n.with_locale(locale, &action)
end

Note: around_filter and before_filter have became around_action and before_action in Rails 4