shell-bot icon indicating copy to clipboard operation
shell-bot copied to clipboard

crashing

Open tazhate opened this issue 8 years ago • 5 comments

events.js:160 throw er; // Unhandled 'error' event ^ NetworkError: Error: connect ETIMEDOUT 149.154.167.197:443 at NetworkError.Error (native) at new NetworkError (/root/shell-bot/node_modules/botgram/lib/bot.js:21:20) at ClientRequest.handleResponse (/root/shell-bot/node_modules/botgram/lib/bot.js:129:24) at emitOne (events.js:96:13) at ClientRequest.emit (events.js:188:7) at TLSSocket.socketErrorListener (_http_client.js:310:9) at emitOne (events.js:96:13) at TLSSocket.emit (events.js:188:7) at emitErrorNT (net.js:1277:8) at _combinedTickCallback (internal/process/next_tick.js:80:11) at process._tickCallback (internal/process/next_tick.js:104:9)

tazhate avatar Sep 14 '17 18:09 tazhate

This literally means the bot can't connect to Telegram. Do you still get this error? Is internet working from that machine? Verify your network settings.

Also, please post the output of curl -v https://api.telegram.org (again, in that same machine)

mildsunrise avatar Sep 16 '17 11:09 mildsunrise

I know it, but why it is crashing? I think that bot should try to reconnect instead of crash :) Sometimes servers get lost of connectivity, so bot should be able to handle this kind of situations.

tazhate avatar Sep 16 '17 16:09 tazhate

This is true. The latest (unreleased ATM) Botgram retries most requests without failing, so as long as you're not using your bot when Telegram servers crash, it will keep running.

However, there's still a lot of corner situations that I don't know how to handle (Telegram API unreachable, message limit exceeded, ...) so I always recomment running the bot with a respawner.

mildsunrise avatar Sep 17 '17 10:09 mildsunrise

Hello, same crash:

2017-11-19 20:55 +03:00: NetworkError: Error: connect ECONNREFUSED 149.154.167.197:443
    at new NetworkError (/home/services/telegram-shell/current/node_modules/botgram/lib/bot.js:21:20)
    at ClientRequest.handleResponse (/home/services/telegram-shell/current/node_modules/botgram/lib/bot.js:129:24)
    at emitOne (events.js:116:13)
    at ClientRequest.emit (events.js:211:7)
    at TLSSocket.socketErrorListener (_http_client.js:387:9)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9)

3guboff avatar Nov 21 '17 19:11 3guboff

That's probably because your Internet is momentarily failing, or Telegram's API is down (which happens a lot lately). If you get NetworkError: API response not in JSON then Telegram is answering requests with 502 errors:

HTTP/1.1 502 Bad Gateway
Server: nginx/1.12.2
Date: Fri, 08 Dec 2017 01:12:17 GMT
Content-Type: text/html
Content-Length: 173
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection

<html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.12.2</center>
</body>
</html>

The last (still unreleased) version of Botgram will avoid most crashes when any of these issues happen. But I'll still recommend using a respawner.

mildsunrise avatar Dec 08 '17 18:12 mildsunrise