From e2970d2c56580da5df041d579ca16ddf11f3d7d0 Mon Sep 17 00:00:00 2001 From: Zoddo Date: Tue, 24 Sep 2024 21:28:33 +0200 Subject: [PATCH 1/3] Clarify if sessions are resumable for each gateway close --- docs/topics/opcodes-and-status-codes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/topics/opcodes-and-status-codes.md b/docs/topics/opcodes-and-status-codes.md index 74ce2e707e..619c1789bb 100644 --- a/docs/topics/opcodes-and-status-codes.md +++ b/docs/topics/opcodes-and-status-codes.md @@ -23,7 +23,7 @@ All gateway events in Discord are tagged with an opcode that denotes the payload ###### Gateway Close Event Codes -In order to prevent broken reconnect loops, you should consider some close codes as a signal to stop reconnecting. This can be because your token expired, or your identification is invalid. This table explains what the application defined close codes for the gateway are, and which close codes you should not attempt to reconnect. +In order to prevent broken reconnect loops, you should consider some close codes as a signal to stop reconnecting. This can be because your token expired, or your identification is invalid. This table explains what the application-defined close codes for the gateway are, and what actions you are expected to do when receiving them. | Code | Description | Explanation | Reconnect | From f2fe2527a414a598e3afe79cba5056eafb1f7248 Mon Sep 17 00:00:00 2001 From: Zoddo Date: Tue, 24 Sep 2024 21:48:23 +0200 Subject: [PATCH 2/3] Fix table formatting --- docs/topics/opcodes-and-status-codes.md | 32 ++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/topics/opcodes-and-status-codes.md b/docs/topics/opcodes-and-status-codes.md index 619c1789bb..df0fb22d29 100644 --- a/docs/topics/opcodes-and-status-codes.md +++ b/docs/topics/opcodes-and-status-codes.md @@ -26,22 +26,22 @@ All gateway events in Discord are tagged with an opcode that denotes the payload In order to prevent broken reconnect loops, you should consider some close codes as a signal to stop reconnecting. This can be because your token expired, or your identification is invalid. This table explains what the application-defined close codes for the gateway are, and what actions you are expected to do when receiving them. -| Code | Description | Explanation | Reconnect | -|------|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------| -| 4000 | Unknown error | We're not sure what went wrong. Try reconnecting? | true | -| 4001 | Unknown opcode | You sent an invalid [Gateway opcode](/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes) or an invalid payload for an opcode. Don't do that! | true | -| 4002 | Decode error | You sent an invalid [payload](/docs/events/gateway#sending-events) to Discord. Don't do that! | true | -| 4003 | Not authenticated | You sent us a payload prior to [identifying](/docs/events/gateway#identifying), or this session has been invalidated. | true | -| 4004 | Authentication failed | The account token sent with your [identify payload](/docs/events/gateway-events#identify) is incorrect. | false | -| 4005 | Already authenticated | You sent more than one identify payload. Don't do that! | true | -| 4007 | Invalid `seq` | The sequence sent when [resuming](/docs/events/gateway-events#resume) the session was invalid. Reconnect and start a new session. | true | -| 4008 | Rate limited | Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this. | true | -| 4009 | Session timed out | Your session timed out. Reconnect and start a new one. | true | -| 4010 | Invalid shard | You sent us an invalid [shard when identifying](/docs/events/gateway#sharding). | false | -| 4011 | Sharding required | The session would have handled too many guilds - you are required to [shard](/docs/events/gateway#sharding) your connection in order to connect. | false | -| 4012 | Invalid API version | You sent an invalid version for the gateway. | false | -| 4013 | Invalid intent(s) | You sent an invalid intent for a [Gateway Intent](/docs/events/gateway#gateway-intents). You may have incorrectly calculated the bitwise value. | false | -| 4014 | Disallowed intent(s) | You sent a disallowed intent for a [Gateway Intent](/docs/events/gateway#gateway-intents). You may have tried to specify an intent that you [have not enabled or are not approved for](/docs/events/gateway#privileged-intents). | false | +| Code | Description | Explanation | Action | +|------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------| +| 4000 | Unknown error | We're not sure what went wrong. Try reconnecting? | Reconnect & resume session | +| 4001 | Unknown opcode | You sent an invalid [Gateway opcode](/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes) or an invalid payload for an opcode. Don't do that! | Reconnect & start a new session | +| 4002 | Decode error | You sent an invalid [payload](/docs/events/gateway#sending-events) to Discord. Don't do that! | Reconnect & resume session | +| 4003 | Not authenticated | You sent us a payload prior to [identifying](/docs/events/gateway#identifying), or this session has been invalidated. | Reconnect & start a new session | +| 4004 | Authentication failed | The account token sent with your [identify payload](/docs/events/gateway-events#identify) is incorrect. | Don't reconnect automatically! | +| 4005 | Already authenticated | You sent more than one identify payload. Don't do that! | Reconnect & start a new session | +| 4007 | Invalid `seq` | The sequence sent when [resuming](/docs/events/gateway-events#resume) the session was invalid. | Reconnect & start a new session | +| 4008 | Rate limited | Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this. | Reconnect & resume session | +| 4009 | Session timed out | Your session timed out. | Reconnect & start a new session | +| 4010 | Invalid shard | You sent us an invalid [shard when identifying](/docs/events/gateway#sharding). | Don't reconnect automatically! | +| 4011 | Sharding required | The session would have handled too many guilds - you are required to [shard](/docs/events/gateway#sharding) your connection in order to connect. | Don't reconnect automatically! | +| 4012 | Invalid API version | You sent an invalid version for the gateway. | Don't reconnect automatically! | +| 4013 | Invalid intent(s) | You sent an invalid intent for a [Gateway Intent](/docs/events/gateway#gateway-intents). You may have incorrectly calculated the bitwise value. | Don't reconnect automatically! | +| 4014 | Disallowed intent(s) | You sent a disallowed intent for a [Gateway Intent](/docs/events/gateway#gateway-intents). You may have tried to specify an intent that you [have not enabled or are not approved for](/docs/events/gateway#privileged-intents). | Don't reconnect automatically! | ## Voice From ec9b02e24b4b47b382e3c43d29977f0cc51eaa71 Mon Sep 17 00:00:00 2001 From: Zoddo Date: Wed, 25 Sep 2024 17:08:33 +0200 Subject: [PATCH 3/3] Use 2 seperate 'Reconnect' & 'Resume' columns instead of a single 'Action' column --- docs/topics/opcodes-and-status-codes.md | 34 ++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/topics/opcodes-and-status-codes.md b/docs/topics/opcodes-and-status-codes.md index df0fb22d29..99065358ef 100644 --- a/docs/topics/opcodes-and-status-codes.md +++ b/docs/topics/opcodes-and-status-codes.md @@ -23,25 +23,25 @@ All gateway events in Discord are tagged with an opcode that denotes the payload ###### Gateway Close Event Codes -In order to prevent broken reconnect loops, you should consider some close codes as a signal to stop reconnecting. This can be because your token expired, or your identification is invalid. This table explains what the application-defined close codes for the gateway are, and what actions you are expected to do when receiving them. +In order to prevent broken reconnect loops, you should consider some close codes as a signal to stop reconnecting. This can be because your token expired, or your identification is invalid. This table explains what the application-defined close codes for the gateway are, which close codes you should not attempt to reconnect, and which ones require you to start a new session. -| Code | Description | Explanation | Action | -|------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------| -| 4000 | Unknown error | We're not sure what went wrong. Try reconnecting? | Reconnect & resume session | -| 4001 | Unknown opcode | You sent an invalid [Gateway opcode](/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes) or an invalid payload for an opcode. Don't do that! | Reconnect & start a new session | -| 4002 | Decode error | You sent an invalid [payload](/docs/events/gateway#sending-events) to Discord. Don't do that! | Reconnect & resume session | -| 4003 | Not authenticated | You sent us a payload prior to [identifying](/docs/events/gateway#identifying), or this session has been invalidated. | Reconnect & start a new session | -| 4004 | Authentication failed | The account token sent with your [identify payload](/docs/events/gateway-events#identify) is incorrect. | Don't reconnect automatically! | -| 4005 | Already authenticated | You sent more than one identify payload. Don't do that! | Reconnect & start a new session | -| 4007 | Invalid `seq` | The sequence sent when [resuming](/docs/events/gateway-events#resume) the session was invalid. | Reconnect & start a new session | -| 4008 | Rate limited | Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this. | Reconnect & resume session | -| 4009 | Session timed out | Your session timed out. | Reconnect & start a new session | -| 4010 | Invalid shard | You sent us an invalid [shard when identifying](/docs/events/gateway#sharding). | Don't reconnect automatically! | -| 4011 | Sharding required | The session would have handled too many guilds - you are required to [shard](/docs/events/gateway#sharding) your connection in order to connect. | Don't reconnect automatically! | -| 4012 | Invalid API version | You sent an invalid version for the gateway. | Don't reconnect automatically! | -| 4013 | Invalid intent(s) | You sent an invalid intent for a [Gateway Intent](/docs/events/gateway#gateway-intents). You may have incorrectly calculated the bitwise value. | Don't reconnect automatically! | -| 4014 | Disallowed intent(s) | You sent a disallowed intent for a [Gateway Intent](/docs/events/gateway#gateway-intents). You may have tried to specify an intent that you [have not enabled or are not approved for](/docs/events/gateway#privileged-intents). | Don't reconnect automatically! | +| Code | Description | Explanation | Reconnect | Resume | +|------|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|--------| +| 4000 | Unknown error | We're not sure what went wrong. Try reconnecting? | true | true | +| 4001 | Unknown opcode | You sent an invalid [Gateway opcode](/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes) or an invalid payload for an opcode. Don't do that! | true | false | +| 4002 | Decode error | You sent an invalid [payload](/docs/events/gateway#sending-events) to Discord. Don't do that! | true | true | +| 4003 | Not authenticated | You sent us a payload prior to [identifying](/docs/events/gateway#identifying), or this session has been invalidated. | true | false | +| 4004 | Authentication failed | The account token sent with your [identify payload](/docs/events/gateway-events#identify) is incorrect. | false | false | +| 4005 | Already authenticated | You sent more than one identify payload. Don't do that! | true | false | +| 4007 | Invalid `seq` | The sequence sent when [resuming](/docs/events/gateway-events#resume) the session was invalid. | true | false | +| 4008 | Rate limited | Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this. | true | true | +| 4009 | Session timed out | Your session timed out. | true | false | +| 4010 | Invalid shard | You sent us an invalid [shard when identifying](/docs/events/gateway#sharding). | false | false | +| 4011 | Sharding required | The session would have handled too many guilds - you are required to [shard](/docs/events/gateway#sharding) your connection in order to connect. | false | false | +| 4012 | Invalid API version | You sent an invalid version for the gateway. | false | false | +| 4013 | Invalid intent(s) | You sent an invalid intent for a [Gateway Intent](/docs/events/gateway#gateway-intents). You may have incorrectly calculated the bitwise value. | false | false | +| 4014 | Disallowed intent(s) | You sent a disallowed intent for a [Gateway Intent](/docs/events/gateway#gateway-intents). You may have tried to specify an intent that you [have not enabled or are not approved for](/docs/events/gateway#privileged-intents). | false | false | ## Voice