From bc12f1238b035315d5c26e5dc137f71a4a167232 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 | 15 ++++++++++++++- 1 file changed, 14 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 e0faad59b..385a10448 100644 --- a/src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts +++ b/src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts @@ -19,7 +19,7 @@ import { BaseMessageComponents, InteractionCallbackSchema, InteractionCallbackType, MessageType } from "@spacebar/schemas"; import { handleComps, route, sendMessage } from "@spacebar/api"; import { Request, Response, Router } from "express"; -import { Config, emitEvent, InteractionSuccessEvent, Message, MessageUpdateEvent, pendingInteractions, User } from "@spacebar/util"; +import { Config, emitEvent, InteractionSuccessEvent, Message, MessageUpdateEvent, pendingInteractions, User, InteractionFailureEvent } from "@spacebar/util"; import { HTTPError } from "#util/util/lambert-server"; const router = Router({ mergeParams: true }); @@ -112,6 +112,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: {