diff --git a/app/table/cells/InstanceLinkCell.tsx b/app/table/cells/InstanceLinkCell.tsx
index b2fbe019ca..ed706e7365 100644
--- a/app/table/cells/InstanceLinkCell.tsx
+++ b/app/table/cells/InstanceLinkCell.tsx
@@ -11,7 +11,7 @@ import { useApiQuery } from '@oxide/api'
 import { useProjectSelector } from '~/hooks/use-params'
 import { pb } from '~/util/path-builder'
 
-import { SkeletonCell } from './EmptyCell'
+import { EmptyCell, SkeletonCell } from './EmptyCell'
 import { LinkCell } from './LinkCell'
 
 export const InstanceLinkCell = ({ instanceId }: { instanceId?: string }) => {
@@ -23,7 +23,7 @@ export const InstanceLinkCell = ({ instanceId }: { instanceId?: string }) => {
   )
 
   // has to be after the hooks because hooks can't be executed conditionally
-  if (!instanceId) return null
+  if (!instanceId) return <EmptyCell />
   if (!instance) return <SkeletonCell />
 
   return (
diff --git a/test/e2e/disks.e2e.ts b/test/e2e/disks.e2e.ts
index e735f7dad6..85fd6d35c1 100644
--- a/test/e2e/disks.e2e.ts
+++ b/test/e2e/disks.e2e.ts
@@ -29,7 +29,7 @@ test('List disks and snapshot', async ({ page }) => {
     state: 'attached',
   })
   await expectRowVisible(table, {
-    'Attached to': '',
+    'Attached to': '—',
     name: 'disk-3',
     size: '6 GiB',
     state: 'detached',