Around 23:01:07 UTC on Dec 2nd, we experienced a handful of timeouts when trying to contact the Twilio API [1]. Thanks to the health check, we were alerted to the issue. However, the issue also resulted in exceptions being reported to Bugsnag [2], probably due to the lack of error handling in the GET /ice-servers
endpoint.
Dec 02 22:53:57 atom-teletype heroku/router: at=info method=GET path="/_ping" host=api.teletype.atom.io request_id=595c1138-9d17-45d5-981e-fc60398fcd96 fwd="REDACTED" dyno=web.1 connect=1ms service=6051ms status=503 bytes=298 protocol=https
Dec 02 23:00:44 atom-teletype heroku/router: at=info method=GET path="/_ping" host=api.teletype.atom.io request_id=b9aae493-942f-4ea7-a964-d573fcdef91a fwd="REDACTED" dyno=web.2 connect=0ms service=6071ms status=503 bytes=298 protocol=https
Dec 02 23:00:58 atom-teletype heroku/router: at=info method=GET path="/_ping" host=api.teletype.atom.io request_id=b9747980-60bc-4046-acb9-5b05d55aa4d2 fwd="REDACTED" dyno=web.2 connect=0ms service=6067ms status=503 bytes=298 protocol=https
Dec 02 23:01:04 atom-teletype heroku/router: at=error code=H12 desc="Request timeout" method=GET path="/ice-servers" host=api.teletype.atom.io request_id=2d948f90-8e86-4a74-9502-fb20fbfd129f fwd="REDACTED" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
Dec 02 23:01:10 atom-teletype heroku/router: at=info method=GET path="/_ping" host=api.teletype.atom.io request_id=06e1ef51-c42f-4943-96a8-06375ad62972 fwd="REDACTED" dyno=web.2 connect=0ms service=6058ms status=503 bytes=298 protocol=https
Dec 02 23:01:23 atom-teletype heroku/router: at=error code=H12 desc="Request timeout" method=GET path="/ice-servers" host=api.teletype.atom.io request_id=2b586b10-f872-40a7-9bda-30918072e9d2 fwd="REDACTED" dyno=web.2 connect=1ms service=30000ms status=503 bytes=0 protocol=https
Dec 02 23:01:23 atom-teletype heroku/router: at=info method=GET path="/_ping" host=api.teletype.atom.io request_id=82c0da9a-5d0c-46de-87b2-e909fd99c1ba fwd="REDACTED" dyno=web.1 connect=1ms service=6042ms status=503 bytes=298 protocol=https
Dec 02 23:01:31 atom-teletype heroku/router: at=error code=H12 desc="Request timeout" method=GET path="/ice-servers" host=api.teletype.atom.io request_id=c8e35e55-fbe3-4feb-8a2f-9a3ea3186a47 fwd="REDACTED" dyno=web.2 connect=1ms service=30002ms status=503 bytes=0 protocol=https
StatusCodeError 500 - "{\"code\": 20500, \"message\": \"An internal server error has occurred\", \"more_info\": \"https://www.twilio.com/docs/errors/20500\", \"status\": 500}"
/app/node_modules/request-promise-core/lib/errors.js:32:15 new StatusCodeError
/app/node_modules/request-promise-core/lib/plumbing.js:104:33 callback
/app/node_modules/request-promise-core/lib/plumbing.js:46:31 RP$callback [as _callback]
/app/node_modules/request/request.js:188:22 callback
events.js:106:13 emitTwo
events.js:194:7 emit
/app/node_modules/request/request.js:1171:10 none
events.js:96:13 emitOne
events.js:191:7 emit
/app/node_modules/request/request.js:1091:12 none
events.js:293:19 onceWrapper
events.js:91:20 emitNone
events.js:188:7 emit
/app/node_modules/newrelic/lib/transaction/tracer/index.js:183:28 wrapped
/app/node_modules/newrelic/lib/transaction/tracer/instrumentation/outbound.js:97:26 wrappedResponseEmit [as emit]
_stream_readable.js:975:12 endReadableNT
/app/node_modules/newrelic/lib/transaction/tracer/index.js:183:28 wrapped
internal/process/next_tick.js:80:11 _combinedTickCallback
internal/process/next_tick.js:128:9 _tickDomainCallback
/app/node_modules/newrelic/lib/transaction/tracer/index.js:284:51 wrappedFunction