diff --git a/src/node/main.ts b/src/node/main.ts
index 5af1f5c6a2fc..f4733b109187 100644
--- a/src/node/main.ts
+++ b/src/node/main.ts
@@ -126,7 +126,9 @@ export const runCodeServer = async (
 
   logger.info(`Using config file ${humanPath(os.homedir(), args.config)}`)
   logger.info(`${protocol.toUpperCase()} server listening on ${serverAddress.toString()}`)
-  logger.info(`Session server listening on ${sessionServerAddress?.toString()}`)
+  if (sessionServerAddress) {
+    logger.info(`Session server listening on ${sessionServerAddress.toString()}`)
+  }
 
   if (args.auth === AuthType.Password) {
     logger.info("  - Authentication is enabled")
diff --git a/src/node/vscodeSocket.ts b/src/node/vscodeSocket.ts
index 1bdb895f8ae9..df1d8406ca51 100644
--- a/src/node/vscodeSocket.ts
+++ b/src/node/vscodeSocket.ts
@@ -78,7 +78,11 @@ export async function makeEditorSessionManagerServer(
   })
 
   const server = http.createServer(router)
-  await listen(server, { socket: codeServerSocketPath })
+  try {
+    await listen(server, { socket: codeServerSocketPath })
+  } catch (e) {
+    logger.warn(`Could not create socket at ${codeServerSocketPath}`)
+  }
   return server
 }
 
diff --git a/test/unit/node/vscodeSocket.test.ts b/test/unit/node/vscodeSocket.test.ts
index 7c5999415a50..75357c76bf08 100644
--- a/test/unit/node/vscodeSocket.test.ts
+++ b/test/unit/node/vscodeSocket.test.ts
@@ -1,5 +1,39 @@
-import { EditorSessionManager } from "../../../src/node/vscodeSocket"
-import { clean, tmpdir, listenOn } from "../../utils/helpers"
+import { logger } from "@coder/logger"
+import * as app from "../../../src/node/app"
+import { EditorSessionManager, makeEditorSessionManagerServer } from "../../../src/node/vscodeSocket"
+import { clean, tmpdir, listenOn, mockLogger } from "../../utils/helpers"
+
+describe("makeEditorSessionManagerServer", () => {
+  let tmpDirPath: string
+
+  const testName = "mesms"
+
+  beforeAll(async () => {
+    jest.clearAllMocks()
+    mockLogger()
+    await clean(testName)
+  })
+
+  afterAll(() => {
+    jest.resetModules()
+  })
+
+  beforeEach(async () => {
+    tmpDirPath = await tmpdir(testName)
+  })
+
+  it("warns if socket cannot be created", async () => {
+    jest.spyOn(app, "listen").mockImplementation(() => {
+      throw new Error()
+    })
+    const server = await makeEditorSessionManagerServer(
+      `${tmpDirPath}/code-server-ipc.sock`,
+      new EditorSessionManager(),
+    )
+    expect(logger.warn).toHaveBeenCalledWith(`Could not create socket at ${tmpDirPath}/code-server-ipc.sock`)
+    server.close()
+  })
+})
 
 describe("EditorSessionManager", () => {
   let tmpDirPath: string