La prima distribuzione di Heroku non è riuscita "codice errore = H10"


88

Ho distribuito la mia app a Heroku. È un'app node.js + express + socket.io e questo è il package.jsonfile

{
  "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"
  }
}

Questo è il registro che ricevo:

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=

Cosa significa?


4
"App in crash" ha il significato ovvio: la tua app si è bloccata. Guarda più in alto nei tuoi log per vedere perché o heroku restartper avviarlo di nuovo in modo da poterlo guardare di nuovo in crash.
willglynn

Sto avendo lo stesso problema. Come l'hai risolto?
Martin Schaer

6
c'è 1 risposta a questa domanda che ha già ricevuto 6 voti positivi fino ad ora ... seleziona quella risposta come risposta corretta a questa domanda.
Rakib

ciao @ilyo! Potresti approvare la mia risposta su questo per favore? Ha 7 anni e continua ad aiutare le persone :) Grazie!
Martin Schaer

Risposte:


199

Ho trovato la soluzione per me qui: Heroku + errore node.js (il processo Web non è riuscito a collegarsi a $ PORT entro 60 secondi dal lancio)

Nel mio caso la mia app si è bloccata perché stavo impostando la PORTA, invece di utilizzare la porta impostata dinamicamente da heroku, a cui è possibile accedere 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
Bene, grazie per questa soluzione. Ho avuto lo stesso identico problema e la tua risposta ha risolto il mio problema dopo poche ore di ricerche.
LukyVj

2
Anche 2 anni dopo, questo post mi ha aiutato quando Heroku si è schiantato. Grazie @Martin Schaer.
Rey Bango

1
Esattamente era il mio problema con l'avvio a molla Java. Grazie
Mohy Eldeen

2
In questi giorni la maggior parte di noi utilizza ES6. Quindi la stessa risposta può essere scritta anche in ES6 utilizzando la funzione freccia. app.listen (process.env.PORT || 3000, () => {console.log ("Express server in ascolto sulla porta% d in modalità% s", this.address (). port, app.settings.env) ;});
Hemadri Dasari

1
@ PraveenKumar-M di solito quella riga va nel file principale del tuo server (index.js). appè un esempio di express
Martin Schaer

47

Ho appena avuto un problema simile con la mia app, ho ricevuto il problema dopo una migrazione del DB, dopo aver provato molte opzioni, quella che mi ha aiutato è stata questa:

heroku restart

(Utilizzando Heroku toolbelt per mac)


1
Ricevevo lo stesso codice di errore e il mio funzionava, ma all'improvviso ha iniziato a succedere. Il comando "heroku restart" mi ha chiarito tutto.
Mike

La stessa cosa è successa a me dopo aver aggiunto New Relic. Il riavvio ha risolto il mio problema
Kris Hollenbeck

6

Ho avuto questo problema, l'unico problema era che il mio Procfile era così

web : node index.js

e ho cambiato in

web:node index.js

l'unico problema erano gli spazi


5

Nel mio caso, ho trovato lo stesso errore perché c'è una differenza di versione di node e npm sulla mia macchina locale e definita nella versione package.json.

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

quando controllo utilizzando

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

quando aggiorno il mio package.json a

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

Funziona bene :)


5

nel mio caso l'aggiunta process.env.PORT || 3000al mio script del server http, risolto. Il mio registro di heroku riportava l'errore "H20" e lo stato di 503 http.


3

Nel mio caso, il mio Procfile puntava al file sbagliato (bot.js che ho usato in precedenza) quindi una volta aggiornato, l'errore era sparito.


3

dopo aver usato hapi18, scopro di estrarre il campo "host" e impostare la porta su:

port: process.env.PORT || 5000 ha fatto il trucco.


2

Controlla anche la connessione al database. Ho dimenticato di cambiare la mia connessione al database da localhost e questo ha bloccato la mia app una volta che è stata inviata a heroku.


2

Ho affrontato lo stesso problema e nessuna delle risposte sopra mi ha aiutato. Quello che ho fatto è stato eseguito:

node --version

e nel package.json aggiungi la sezione motori con la tua versione del nodo:

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

2

Se avvii localmente il server del nodo nodemon, come ho fatto io, e localmente funziona, prova npm start. Nodemon non mi diceva errori, ma npm start me ne ha raccontati molti in modo comprensibile e quindi ho potuto risolverli seguendo un altro post qui. Spero che aiuti qualcuno.


2

Vecchio thread, ma risolvo questo problema impostando la costante PORT su process.env.PORT ||

Per qualche strana ragione, voleva prima cercare Env.


1

Nel mio caso, ho ricevuto questo errore perché mi rifiuto di aggiungere un Procfile alla mia app node js e il mio "main": "app.js" puntava inizialmente a un altro file js come main. così facendo questi cambiamenti risolverlo per me


1

Ho avuto un errore di battitura

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

usato per essere

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


1

Nel mio caso, ho dimenticato di impostare il database env per la distribuzione. puoi impostare env con questo comando (sto usando mLab per il server MongoDB)

configurazione heroku: set MONGO_URI = 'mongodb: // address'


1

Per me era Package.json era vuoto dalle dipendenze anche se pensavo di averle installate .. quindi ho dovuto reinstallarle con l'opzione --save alla fine e verificare che fossero state aggiunte a package.json .. e poi spingerlo di nuovo e ha funzionato.


1

Nel mio caso non c'era alcun comando di avvio nella sezione script del package.jsonfile. Quando ho creato il package.jsonfile con npm initnon ho creato un comando di avvio dello script. Quindi sono andato al package.jsonfile, sotto gli script ho aggiunto una nuova voce:

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

L'ho salvato e caricato su Heroku e ha funzionato



0

La mia porta è stata impostata su config.httpPortcui si risolve 80. L'ho risolto in questo modo:

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

app.listen(PORT, ...)

Grazie mille, mi ha fatto perdere molte ore la scorsa notte.


0

Il codice di errore H10 potrebbe significare molte cose diverse. Nel mio caso, la prima volta è stato perché non sapevo che Heroku non fosse compatibile con Sqlite3, la seconda volta perché ho accidentalmente inviato un aggiornamento con Google Analytics lavorando sia in fase di sviluppo che in produzione.


0

Ho ricevuto lo stesso errore di cui sopra come "app bloccata" e errore H10 e i registri dell'app heroku non mostrano molte informazioni relative ai motivi del messaggio di errore. Quindi ho riavviato il dynos in heroku e poi ho mostrato l'errore che diceva parentesi graffa aggiuntiva in uno dei file index.js nella mia configurazione. Il problema è stato risolto una volta rimossa e ridistribuita l'app su heroku.


0

Thread più vecchio, ma per me non ho impostato i miei .envvars nella console Heroku.


0

stavo usando body-Parser che lancia un'eccezione

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

invece di utilizzare

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

questo ha risolto il mio problema


0

Voglio registrare qui qual è stata la mia soluzione per questo errore che era un semplice file non aggiornato a Github.

Ho un progetto a stack completo ei miei file sono strutturati sia nella directory principale per il backend che nel client per il frontend (sto usando React.js). Tutto si riduceva al fatto che stavo erroneamente spingendo la cartella client solo su Github e tutte le mie modifiche che avevano un errore (manca una virgola nell'istanza di un oggetto nel mio index.js) non sono state aggiornate nel lato back-end. Poiché questo Heroku recupera tutti gli aggiornamenti dal repository Github, non sono riuscito ad accedere al mio server e l'errore persisteva. Quindi tutto ciò che dovevo fare era eseguire il commit e il push nella directory principale e aggiornare tutte le modifiche del progetto e tutto è tornato a funzionare di nuovo.


0

Nel mio caso avevo code = H10 e status = 503 perché il mio Procfile:

web: node build/server.js

e ho incluso / build in .gitignore


0

Lotto con lo stesso errore per ore, ma sono riuscito a risolverlo. Ho installato multer e aws-sdk come devDependencies per errore, invece delle sole dipendenze. Quindi, chiunque abbia lo stesso errore, ricontrolla il tuo file package.json.

Inoltre, un piccolo suggerimento per la proprietà del motore in 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

Stavo distribuendo il framework Python Django quando ho ricevuto questo errore perché ho dimenticato di inserire il nome web: gunicorn plaindjango.wsgi:application --log-file -della mia app invece diplaindjango

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.