В своем комментарии я предложил использовать сеансы на основе файлов cookie в стойке , но, глядя на это, сеансы Sinatra в любом случае сеансы файлов cookie в стойке.
Если посмотреть дальше,Я обнаружил это в документации Sinatra :
Для повышения безопасности данные сеанса в файле cookie подписываются секретом сеанса.Случайный секрет генерирует для вас Синатра.Однако, поскольку этот секрет будет меняться при каждом запуске вашего приложения, вы можете установить его самостоятельно, поэтому все экземпляры вашего приложения делятся им:
set :session_secret, 'super secret'
Таким образом, кажется, что каждый динамо Heroku генерирует свой ключ, и поэтому не может читать файлы cookie сеанса друг друга, и вам нужно указать ключ, чтобы каждый динамо использовал один и тот же.
Скореечем добавлять секретный ключ к исходному коду, вам, вероятно, лучше установить переменную окружения :
$ heroku config:add SESSION_KEY=a_longish_secret_key
Затем в приложении sinatra:
enable :sessions
set :session_secret, ENV['SESSION_KEY']