diff --git a/server/room_attacher.js b/server/room_attacher.js
index bbd523eb267cb0768688b91e7929fe9dacf6ae6c..4881159e61fdb2391aeaef03e30ae82fe4280cec 100644
--- a/server/room_attacher.js
+++ b/server/room_attacher.js
@@ -87,8 +87,7 @@ async function handleAttachToRoom({
     // Crash if attaching to room was not successful
     console.error(error);
     process.send({ eventName: "attachToError", data: error.toString() });
-    await sleep(100);
-    process.exit(1);
+    await killMe(1);
   }
 }
 
@@ -138,12 +137,23 @@ async function handleSendMessage({ content }) {
 }
 
 async function handleDetach() {
-  clearInterval(screenShotInterval);
-  clearInterval(gatherUserInfoInterval);
-  await roomPage.close();
+  await killMe(0);
+}
+
+async function killMe(exitCode) {
+  try {
+    clearInterval(screenShotInterval);
+  } catch (error) {}
+  try {
+    clearInterval(gatherUserInfoInterval);
+  } catch (error) {}
+  try {
+    await roomPage.close();
+  } catch (error) {}
   try {
     await fs.promises.unlink(roomScreenShotPath);
   } catch (error) {}
+
   process.send({ eventName: "detachSuccess", data: null });
   await sleep(100);
   process.exit(0);