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:
@@ -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' });
|
||||
|
||||
Reference in New Issue
Block a user