Это может произойти, потому что Heroku не обнаруживает конечную точку для вашего приложения (по умолчанию привязана к порту 3000).
Heroku приписывает вашему приложению динамический порт и помещает значение порта в переменную envnamed $PORT
.
Ваше приложение должно использовать значение, указанное Heroku в этой переменной, и прослушивать входящие соединения, потому что именно здесь Heroku будет переадресовывать соединения.
Переменная имеетдля чтения при запуске приложения: https://help.heroku.com/PPBPA231/how-do-i-use-the-port-environment-variable-in-container-based-apps
Вы можете проверить текущие переменные env в своем приложении, используя heroku run printenv
(я вижу, что вы используете Viper, который должен обрабатывать переменные env.Однако в своей документации они говорят, что в env он чувствителен к регистру, возможно, это может объяснить, почему он не работает для вас: https://github.com/spf13/viper#working-with-environment-variables)