Repository navigation
fix(bot): use ephemeral message flags and log the age of unacknowledged interactions - #13
Merged
Merged
Conversation
…ed interactions Discord.js deprecated the ephemeral option in favor of MessageFlags.Ephemeral. When the defer fails with 10062, log how old the interaction was so a late delivery or a stalled event loop can be told apart from other expiries.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ephemeral: trueoption withflags: MessageFlags.Ephemeralon every reply, follow-up, and the initialdeferReply. This removes the discord.js deprecation warning from the logs.deferReplyfails, log how old the interaction was (Date.now() - interaction.createdTimestamp).Why
Production logged
10062 Unknown interactionwhile acknowledging/search.deferReplyis already the first await inInteractionCreate, so the interaction expired before the handler ran. Handler code is not the cause.The logged age tells us where to look next:
yt-dlp -Jpayloads, or CPU contention in the container.This PR does not fix the 10062 itself. It only adds the log needed to find the cause.
Changes
packages/server/src/index.ts: flags migration and the age in the acknowledgment error logpackages/server/src/lib/ackws up withMessageFlags.Ephemeral`packages/server/src/lib/ack.test.ts: fake interaction updated to the new option shapeTest plan
bun test: 84 pass, 0 failbun build src/index.ts --target bunsucceedsagein the log