From f769ea58725b40ab00caea59fcd2dc1cdfcbfdda Mon Sep 17 00:00:00 2001 From: Adam Moussa <166072409+amoussa1229@users.noreply.github.com> Date: Fri, 10 Apr 2026 18:11:54 -0400 Subject: [PATCH] Fix base64 body decoding for Slack interactivity payloads --- src/slackAppHome.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/slackAppHome.js b/src/slackAppHome.js index 2a204cf..67e533e 100644 --- a/src/slackAppHome.js +++ b/src/slackAppHome.js @@ -100,9 +100,14 @@ function categorizePayments(payments) { // --- Main handler --- export const handler = async (event) => { + // Decode body — API Gateway may base64-encode it + let rawBody = event.body || ""; + if (event.isBase64Encoded) { + rawBody = Buffer.from(rawBody, "base64").toString("utf-8"); + } + // Slack sends block_actions as form-encoded: payload= let body; - const rawBody = event.body || ""; if (rawBody.startsWith("payload=")) { body = JSON.parse(decodeURIComponent(rawBody.replace("payload=", ""))); } else {