twitchdev / issues

Issue tracker for third party developers.
Apache License 2.0
72 stars 7 forks source link

Certain emotesets return error 500 when retreiving emote images #50

Closed jjlucsy closed 11 months ago

jjlucsy commented 4 years ago

The chat message USERSTATE will contain all the emotesets that a user has. I've found two sets that will produce an error 500 when trying to retrieve the emote images for them.

How to reproduce curl -H "Accept: application/vnd.twitchtv.v5+json" -H "Client-ID: 046ape8hh5j3y3vx13ta1hdpliu4s2" -X GET "https://api.twitch.tv/kraken/chat/emoticon_images?emotesets=1115262924" curl -H "Accept: application/vnd.twitchtv.v5+json" -H "Client-ID: 046ape8hh5j3y3vx13ta1hdpliu4s2" -X GET "https://api.twitch.tv/kraken/chat/emoticon_images?emotesets=1500636590"

jbulava commented 4 years ago

Ticketed internally as GQL-915. Investigating if this is a bug that needs further attention.

mccxiv commented 4 years ago

Another one for your investigation: 950319492

curl -X GET \
  'https://api.twitch.tv/kraken/chat/emoticon_images?emotesets=950319492' \
  -H 'Accept: application/vnd.twitchtv.v5+json' \
  -H 'Cache-Control: no-cache' \
  -H 'Client-ID: 1pr5dzvymq1unqa2xiavdkvslsn4ebe'
{
    "error": "Internal Server Error",
    "status": 500,
    "message": ""
}
DaGaffer commented 4 years ago

Linking more information from a thread I created today on the dev forums:

https://discuss.dev.twitch.tv/t/retrieving-emotesets-occasionally-fails-with-error-500-internal-server-error/25101/3

I am seeing EmoteSets (even EmoteSet 0) randomly not be delivered with the HTTP 500 error.

This appears to be because some of the servers are failing to deliver emote sets, rather than an issue with particular emotesets in general (unless I am seeing a different issue than the above of course).

The relevant bit from that thread:

When EmoteSets are successfully delivered, the emote sets are pre-cached on one of the two servers that are attempting to serve the request.

The unsuccessful responses are always MISS, MISS when it comes to being cached.

As a side note, I have not yet seen any seattle server which has the emotes cached.

Example of a success header:
GV_TwitchLog: EmoteSet response header: X-Served-By: cache-sea4480-SEA, cache-bur17534-BUR GV_TwitchLog: EmoteSet response header: X-Cache: MISS, HIT

Example of a fail header:
GV_TwitchLog: EmoteSet response header: X-Served-By: cache-sea4480-SEA, cache-bur17561-BUR GV_TwitchLog: EmoteSet response header: X-Cache: MISS, MISS

Full header (success): GV_TwitchLog: EmoteSet response header: Connection: keep-alive GV_TwitchLog: EmoteSet response header: Content-Length: 2719 GV_TwitchLog: EmoteSet response header: Content-Type: application/json; charset=utf-8 GV_TwitchLog: EmoteSet response header: Access-Control-Allow-Origin: * GV_TwitchLog: EmoteSet response header: Cache-Control: no-cache, no-store, must-revalidate, private GV_TwitchLog: EmoteSet response header: Content-Encoding: gzip GV_TwitchLog: EmoteSet response header: Expires: 0 GV_TwitchLog: EmoteSet response header: Pragma: no-cache GV_TwitchLog: EmoteSet response header: Timing-Allow-Origin: https://www.twitch.tv GV_TwitchLog: EmoteSet response header: Date: Tue, 21 Apr 2020 20:32:15 GMT GV_TwitchLog: EmoteSet response header: X-Served-By: cache-sea4480-SEA, cache-bur17534-BUR GV_TwitchLog: EmoteSet response header: X-Cache: MISS, HIT GV_TwitchLog: EmoteSet response header: X-Cache-Hits: 0, 1 GV_TwitchLog: EmoteSet response header: X-Timer: S1587501135.495488,VS0,VS0,VE1 GV_TwitchLog: EmoteSet response header: Vary: Accept-Encoding GV_TwitchLog: EmoteSet response header: Strict-Transport-Security: max-age=300

Full Failure header: GV_TwitchLog: EmoteSet response header: Connection: keep-alive GV_TwitchLog: EmoteSet response header: Content-Type: application/json; charset=utf-8 GV_TwitchLog: EmoteSet response header: Access-Control-Allow-Origin: * GV_TwitchLog: EmoteSet response header: Cache-Control: no-cache, no-store, must-revalidate, private GV_TwitchLog: EmoteSet response header: Content-Encoding: gzip GV_TwitchLog: EmoteSet response header: Expires: 0 GV_TwitchLog: EmoteSet response header: Pragma: no-cache GV_TwitchLog: EmoteSet response header: Timing-Allow-Origin: https://www.twitch.tv GV_TwitchLog: EmoteSet response header: Date: Tue, 21 Apr 2020 20:31:25 GMT GV_TwitchLog: EmoteSet response header: X-Served-By: cache-sea4480-SEA, cache-bur17561-BUR GV_TwitchLog: EmoteSet response header: X-Cache: MISS, MISS GV_TwitchLog: EmoteSet response header: X-Cache-Hits: 0, 0 GV_TwitchLog: EmoteSet response header: X-Timer: S1587501086.909211,VS0,VS0,VE39 GV_TwitchLog: EmoteSet response header: Vary: Accept-Encoding GV_TwitchLog: EmoteSet response header: Strict-Transport-Security: max-age=300 GV_TwitchLog: EmoteSet response header: transfer-encoding: chunked

For around 20 successes and 20 failures, this has held. FYI if useful.

tduva commented 4 years ago

My users (and myself) are having this issue as well. In addition to some emotesets always causing error 500 (others posted examples above), it lately seems to be returning error 500 on and off for any request.

remixer-dec commented 4 years ago

I have 100% error rate in the last 4 days with emotesets=0

DaGaffer commented 4 years ago

@remixer-dec Same here.

RAnders00 commented 4 years ago

I think this issue is a bit more severe than "Investigating if this is a bug that needs further attention." if it affects emote set 0 (global emotes). I reckon a large number of integrations are relying on global emotes in some way.

Xemdo commented 11 months ago

Closing due to the deprecation of the Kraken API as of February 2023.