getPreviewPoolProjectForUser filtered on state === leased but ignored leaseExpiresAtMillis. Expired leases stay leased until cleanupExpiredPreviewPollLeases runs, so users could still be routed to old project

This commit is contained in:
Madison 2026-05-28 12:23:15 -05:00
parent 3f1ab0c688
commit cb701bf0e1

View File

@ -631,5 +631,12 @@ export async function getPreviewPoolProjectForUser(userId: string): Promise<stri
});
const metadata = parsePreviewPoolMetadata(membership?.team.serverMetadata);
return metadata?.projectId ?? null;
if (metadata == null) {
return null;
}
const now = new Date().getTime();
if (metadata.leaseExpiresAtMillis == null || metadata.leaseExpiresAtMillis <= now) {
return null;
}
return metadata.projectId;
}