From d61fa3d6216e942b244353f068f95640bd531133 Mon Sep 17 00:00:00 2001 From: southseact-3d Date: Thu, 12 Feb 2026 11:58:35 +0000 Subject: [PATCH] fix: add return statements after successful plan changes to prevent double response - Added return statement after successful paid-to-free cancellation (line 12417) - Added return statement after successful paid-to-paid plan change (line 12448) - Prevents 'Cannot write headers after they are sent' error - Each plan change now returns immediately with the updated account data --- chat/server.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/chat/server.js b/chat/server.js index 46b9894..7be6c75 100644 --- a/chat/server.js +++ b/chat/server.js @@ -12411,6 +12411,10 @@ async function handleAccountSettingsUpdate(req, res) { subscriptionId: user.dodoSubscriptionId, renewsAt: user.subscriptionRenewsAt }); + + // Return success response immediately + await persistUsersDb(); + return sendJson(res, 200, { ok: true, account: await serializeAccount(user) }); } else { return sendJson(res, 400, { error: 'Failed to schedule subscription cancellation' }); } @@ -12438,6 +12442,10 @@ async function handleAccountSettingsUpdate(req, res) { if (user.scheduledPlanChange) { delete user.scheduledPlanChange; } + + // Return success response immediately after plan change + await persistUsersDb(); + return sendJson(res, 200, { ok: true, account: await serializeAccount(user) }); } catch (error) { log('Failed to change plan via Dodo API', { userId: user.id, error: String(error) }); return sendJson(res, 400, { error: error.message || 'Unable to change subscription plan' });