fix: recreate timed out E2B sandboxes on page load

This commit is contained in:
James Murdza 2024-09-17 16:52:31 -07:00
parent 023b3bdc5e
commit 8e3a6d1aa6

View File

@ -176,8 +176,9 @@ io.on("connection", async (socket) => {
const createdContainer = await lockManager.acquireLock(data.sandboxId, async () => {
try {
if (!containers[data.sandboxId]) {
containers[data.sandboxId] = await Sandbox.create({ timeoutMs: 1200000 });
// Start a new container if the container doesn't exist or it timed out.
if (!containers[data.sandboxId] || !(await containers[data.sandboxId].isRunning())) {
containers[data.sandboxId] = await Sandbox.create({ timeoutMs: 1200_000 });
console.log("Created container ", data.sandboxId);
return true;
}