O que costuma acontecer é a conexão com o banco ser encerrada devido a timeout. E como não existe algum tipo de exception para esse erro de conexão com o banco, o container da aplicação é derrubado gerando o erro 503.
Diferente do MongoDB, em nossos planos de MySQL existem tempos de timeout predefinidos para conexões que ficam inutilizadas.
"Certo, mas localmente funciona!" - Provavelmente em seu ambiente local o servidor MySQL não tem nenhuma configuração de timeout. Isso é comum nos Wamp’s, XAMPP’S e outros servers locais.
Geralmente o pessoal que usa Node.JS abre uma conexão com o banco quando conecta no sistema (em uma tela de login do app, por exemplo), e fica com essa mesma conexão aberta para fazer outras consultas dentro do painel admin. Após alguns minutos essa conexão é encerrada pelo nosso MySQL devido ao timeout que está configurado no servidor.
O ideal seria abrir a conexão para logar no admin, e encerrar essa conexão assim que conectado. Dentro do admin, quando necessário fazer uma consulta, aí sim realizar uma nova conexão, que também deve ser encerrada assim que usada.