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
This commit is contained in:
southseact-3d
2026-02-12 11:58:35 +00:00
parent 1e30e07ed5
commit d61fa3d621

View File

@@ -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' });