La primera implementación de Heroku falló `código de error = H10`


86

Implementé mi aplicación en Heroku. Es una aplicación node.js + express + socket.io y este es el package.jsonarchivo

{
  "name": "game_test",
  "author": "Ilya",
  "description": "A test app for our board game",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app"
  },
  "dependencies": {
    "express": "3.0.6",
    "jade": "*",
    "socket.io" : "*"
  },
 "engines": {
      "node": "0.8.14"
  }
}

Este es el registro que obtengo:

heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=game-test-1.herokuapp.com fwd=37.26.146.185 dyno= queue= wait= connect= service= status=503 bytes=
heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=game-test-1.herokuapp.com fwd=37.26.146.185 dyno= queue= wait= connect= service= status=503 bytes=

Qué significa eso?


4
"Aplicación bloqueada" tiene el significado obvio: su aplicación bloqueó. Busque más en sus registros para ver por qué, o heroku restartpara iniciarlo nuevamente para que pueda verlo fallar nuevamente.
willglynn

Estoy teniendo el mismo problema. ¿Cómo lo arreglaste?
Martin Schaer

6
hay 1 respuesta a esta pregunta que ya ha recibido 6 votos a favor hasta ahora ... seleccione esa respuesta como la respuesta correcta de esta pregunta.
Rakib

hola @ilyo! ¿Podría aprobar mi respuesta sobre esto, por favor? Tiene 7 años y sigue ayudando a la gente :) ¡Gracias!
Martin Schaer

Respuestas:


192

Encontré una solución para mí aquí: Error de Heroku + node.js (el proceso web no se pudo vincular a $ PORT dentro de los 60 segundos posteriores al inicio)

En mi caso, mi aplicación se bloqueó porque era difícil configurar el PUERTO, en lugar de usar el puerto que heroku establece dinámicamente, al que se puede acceder con process.env.PORT

app.listen(process.env.PORT || 3000, function(){
  console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env);
});

1
Bueno, gracias por esta solución. Tuve exactamente el mismo problema, y ​​tu respuesta resolvió mi problema después de unas horas de investigaciones.
LukyVj

2
Incluso 2 años después, esta publicación me ayudó cuando Heroku estaba fallando. Gracias @Martin Schaer.
Rey Bango

1
Exactamente fue mi problema con el arranque de primavera de Java. Gracias
Mohy Eldeen

2
En estos días, la mayoría de nosotros usamos ES6. Entonces, la misma respuesta también se puede escribir en ES6 usando la función de flecha. app.listen (process.env.PORT || 3000, () => {console.log ("Servidor Express escuchando en el puerto% d en modo% s", this.address (). puerto, app.settings.env) ;});
Hemadri Dasari

Esto me sucedió, lo cual fue causado por intentar importar una biblioteca que no estaba en mi archivo package.json.
Yvan Pearson

47

Acabo de tener un problema similar con mi aplicación, tuve el problema después de una migración de la base de datos, después de probar muchas opciones, la que me ayudó fue esta:

heroku restart

(Usando el cinturón de herramientas de Heroku para mac)


1
Recibía el mismo código de error y el mío solía funcionar, pero esto de repente comenzó a suceder. El comando "reiniciar heroku" me aclaró esto.
Mike

Me pasó lo mismo después de agregar New Relic. Reiniciar solucionó mi problema
Kris Hollenbeck

5

En mi caso, encontré el mismo error porque hay una diferencia de versión del nodo y npm en mi máquina local y se define en la versión package.json.

"engines": {
  "node": "0.8",
  "npm": "1.2.x"
}

cuando verifico el uso

node --version : v0.10.41
npm --version : 1.4.29

cuando actualizo mi package.json a

 "engines": {
  "node": "0.10.41",
  "npm": "1.4.29"
}

Funciona bien :)


5

en mi caso, agregando process.env.PORT || 3000a mi script de servidor http, resuelto. Mi registro de heroku informó un error 'H20' y un estado http 503.


5

Tuve este problema, el único problema era que mi Procfile era así

web : node index.js

y me cambié a

web:node index.js

el único problema eran los espacios


3

En mi caso, mi Procfile apuntaba al archivo incorrecto (bot.js que usé anteriormente), así que una vez que lo actualicé, el error desapareció.


3

al usar hapi18, encuentro que quito el campo "host" y configuro el puerto en:

port: process.env.PORT || 5000 Hizo el truco.


2

También verifique la conexión de su base de datos. Olvidé cambiar la conexión de mi base de datos de localhost y esto bloqueó mi aplicación una vez que se envió a heroku.


2

Enfrenté este mismo problema y ninguna de las respuestas anteriores me ayudó. Lo que hice fue ejecutar:

node --version

y en package.json agregue la sección de motores con la versión de su nodo:

{
  "name": "myapp",
  "description": "a really cool app",
  "version": "1.0.0",
  "engines": {
    "node": "6.11.1"
  }
}

2

Old Thread, pero soluciono este problema estableciendo la constante PORT en process.env.PORT ||

Por alguna extraña razón, quería buscar Env primero.


1

En mi propio caso, recibí este error porque me niego a agregar un Procfile a mi aplicación de nodo js y mi "main": "app.js" inicialmente apuntaba a otro archivo js como principal. Así que al hacer estos cambios, arreglame


1

Tuve un error tipográfico

const PORT = process.env.PORT||'8080';

solía ser

const PORT = process.env.port||'8080';


1

En mi caso, olvidé configurar el entorno de la base de datos para la implementación. puede configurar env con este comando (estoy usando mLab para el servidor MongoDB)

heroku config: set MONGO_URI = 'mongodb: // dirección'


1

Para mí, era Package.json, estaba vacío de las dependencias aunque pensé que las había instalado ... así que tuve que reinstalarlas con la opción --save al final y verificar que se agregaron al package.json ... y luego Empuje de nuevo y funcionó.


1

Si inicia el servidor de nodo localmente nodemon, como lo hice yo, y funciona localmente, intente npm start. Nodemon me decía que no había errores, pero npm start me dijo muchos de ellos de una manera comprensible y luego pude resolverlos siguiendo otras publicaciones aquí. Espero que ayude a alguien.


1

En mi caso, no había un comando de inicio en la sección de script del package.jsonarchivo. Cuando creé el package.jsonarchivo con npm initno creé un comando de secuencia de comandos de inicio. Entonces fui al package.jsonarchivo, debajo de los scripts agregué una nueva entrada:

 "scripts": {
    "start": "node index.js"
  },

Lo guardé y lo cargó en Heroku y funcionó



0

Mi puerto se estableció en el config.httpPortque se resuelve en 80. Lo arreglé haciendo esto:

const PORT = process.env.PORT || config.httpPort;

app.listen(PORT, ...)

Muchas gracias, anoche me perdí muchas horas.


0

El código de error H10 podría significar muchas cosas diferentes. En mi caso, la primera vez fue porque no sabía que Heroku no es compatible con Sqlite3, la segunda vez fue porque accidentalmente empujé una actualización con Google Analytics trabajando tanto en desarrollo como en producción.


0

Obtuve el mismo error anterior como "la aplicación se bloqueó" y el error H10 y los registros de la aplicación heroku no muestran mucha información relacionada con las razones del mensaje de error. Luego reinicié los dynos en heroku y luego mostró el error que decía una llave adicional en uno de los archivos index.js en mi configuración. El problema se solucionó una vez que se eliminó y se volvió a implementar la aplicación en heroku.


0

Hilo más antiguo, pero para mí no configuré mis .envvars en la consola de Heroku.


0

Estaba usando body-Parser que arroja una excepción

const bodyParser = require('body-Parser')    
//Bodyparser Middleware
app.use(bodyparser.json())

en lugar de usar

    //Bodyparser Middleware
    app.use(express.json())

esto resolvió mi problema


0

Quiero registrar aquí cuál fue mi solución para este error, que era un archivo simple no actualizado a Github.

Tengo un proyecto de pila completa y mis archivos están estructurados tanto en el directorio raíz para el backend como en el cliente para el frontend (estoy usando React.js). Todo se redujo al hecho de que estaba empujando por error la carpeta del cliente solo a Github y todos mis cambios que tenían un error (faltaba una coma en la instancia de un objeto en mi index.js) no se actualizaron en el lado del backend. Dado que este Heroku obtiene todas las actualizaciones del repositorio de Github, no pude acceder a mi servidor y el error persistió. Luego, todo lo que tenía que hacer era confirmar y enviar al directorio raíz y actualizar todos los cambios del proyecto y todo volvió a funcionar nuevamente.


0

En mi caso, tenía el código = H10 y el estado = 503 porque mi Procfile:

web: node build/server.js

e incluí / construí en .gitignore


0

Lucho con el mismo error durante horas, pero pude resolverlo. Instalé multer y aws-sdk como devDependencies por error, en lugar de solo dependencias. Entonces, cualquiera que tenga el mismo error, simplemente verifique su archivo package.json.

Además, un pequeño consejo para la propiedad del motor en package.json.

enter code here
//The greater or equal operators will make sure that you use the right node 
//version 
//even if your current node is greater version than npm node

"engines": {
"node": ">= 0.8.14"
},


//insted of
"engines": {
  "node": "0.8.14"
}

0

Estaba implementando el framework Python Django cuando recibí este error porque olvidé poner el nombre de mi aplicación en web: gunicorn plaindjango.wsgi:application --log-file -lugar deplaindjango

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.