diff --git a/packages/client/ui-attachment/src/MessageImage.module.css b/packages/client/ui-attachment/src/MessageImage.module.css
index 624fbe794f..e59640df92 100644
--- a/packages/client/ui-attachment/src/MessageImage.module.css
+++ b/packages/client/ui-attachment/src/MessageImage.module.css
@@ -58,3 +58,12 @@
background: var(--dsw-alias-interactive-bg-hover-danger);
cursor: pointer;
}
+
+/* A failed tile keeps the 64px grid cell instead of growing to its copy. */
+.error[data-variant='tile'] {
+ width: 64px;
+ height: 64px;
+ padding: 4px;
+ overflow: hidden;
+ border-radius: 16px;
+}
diff --git a/packages/client/ui-attachment/src/MessageImage.tsx b/packages/client/ui-attachment/src/MessageImage.tsx
index 707d802ca4..c4de8f73a7 100644
--- a/packages/client/ui-attachment/src/MessageImage.tsx
+++ b/packages/client/ui-attachment/src/MessageImage.tsx
@@ -79,7 +79,7 @@ export function MessageImage({ attachment, load, variant, labels }: {
}, [attachment, load, attempt])
const label = attachment.name ?? labels.image
- if (error) return
+ if (error) return
return (
<>