From 52d80348106e756d1ec5617cad52392e48e2385e Mon Sep 17 00:00:00 2001 From: MathMan05 Date: Mon, 2 Mar 2026 19:24:28 -0600 Subject: [PATCH] keep it safe --- .../#interaction_token/callback.ts | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts b/src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts index 0d1e32724..b50d4223d 100644 --- a/src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts +++ b/src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts @@ -20,7 +20,19 @@ import { ButtonStyle, InteractionCallbackSchema, InteractionCallbackType, Messag import { route, stripNull } from "@spacebar/api"; import { MessageCreateAttachment, MessageCreateCloudAttachment } from "@spacebar/schemas"; import { Request, Response, Router } from "express"; -import { emitEvent, FieldErrors, InteractionSuccessEvent, uploadFile, Attachment, pendingInteractions, User, Message, Config, MessageUpdateEvent } from "@spacebar/util"; +import { + emitEvent, + FieldErrors, + InteractionSuccessEvent, + uploadFile, + Attachment, + pendingInteractions, + User, + Message, + Config, + MessageUpdateEvent, + InteractionFailureEvent, +} from "@spacebar/util"; import { handleComps, sendMessage } from "../../../../util/handlers/Message"; import { HTTPError } from "#util/util/lambert-server"; @@ -114,6 +126,19 @@ router.post("/", route({}), async (req: Request, res: Response) => { break; case InteractionCallbackType.DEFERRED_UPDATE_MESSAGE: //I think this is just ignored ish at least + interaction.timeout = setTimeout(() => { + emitEvent({ + event: "INTERACTION_FAILURE", + user_id: req.user_id, + data: { + id: interactionId, + nonce: interaction.nonce, + reason_code: 2, // when types are done: InteractionFailureReason.TIMEOUT, + }, + } as InteractionFailureEvent); + }, 30000); + pendingInteractions.delete(interactionId); + res.sendStatus(204); break; case InteractionCallbackType.UPDATE_MESSAGE: {