が発生したが、middleware の順番の問題だった
以下のように、Deviseが使用している middleware Warden::Manager より先に HogeElevator (ApartmentのカスタムElevator) を登録すると解決。
Rails.application.config.middleware.insert_before 'Warden::Manager', 'HogeElevator'
変更前の rake middleware
use Rack::Sendfile
use ActionDispatch::Static
(snip)
use Rack::ETag
use Warden::Manager <==== Devise
use I18n::JS::Middleware
use Apartment::Reloader
use Bullet::Rack
use HogeElevator <==== テナント切り替え
run HogeServer::Application.routes
上記のように Devise(Wardern) の後にテナント切り替えのmiddlewareが登録されている。
変更後
use Rack::Sendfile
use ActionDispatch::Static
(snip)
use Rack::ETag
use HogeElevator <==== テナント切り替え
use Warden::Manager <==== Devise
use I18n::JS::Middleware
use Apartment::Reloader
use Bullet::Rack
run HogeServer::Application.routes
変更後は、Apartmentでのテナント切り替えの動作後にDevise(Warden)が動作するようになった。