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,
|
subscriptionId: user.dodoSubscriptionId,
|
||||||
renewsAt: user.subscriptionRenewsAt
|
renewsAt: user.subscriptionRenewsAt
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Return success response immediately
|
||||||
|
await persistUsersDb();
|
||||||
|
return sendJson(res, 200, { ok: true, account: await serializeAccount(user) });
|
||||||
} else {
|
} else {
|
||||||
return sendJson(res, 400, { error: 'Failed to schedule subscription cancellation' });
|
return sendJson(res, 400, { error: 'Failed to schedule subscription cancellation' });
|
||||||
}
|
}
|
||||||
@@ -12438,6 +12442,10 @@ async function handleAccountSettingsUpdate(req, res) {
|
|||||||
if (user.scheduledPlanChange) {
|
if (user.scheduledPlanChange) {
|
||||||
delete 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) {
|
} catch (error) {
|
||||||
log('Failed to change plan via Dodo API', { userId: user.id, error: String(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' });
|
return sendJson(res, 400, { error: error.message || 'Unable to change subscription plan' });
|
||||||
|
|||||||
Reference in New Issue
Block a user