diff --git a/web/src/routes/admin/reports/+page.svelte b/web/src/routes/admin/reports/+page.svelte
index 276067b0..5e8aa3e2 100644
--- a/web/src/routes/admin/reports/+page.svelte
+++ b/web/src/routes/admin/reports/+page.svelte
@@ -254,14 +254,14 @@
{#each r.reports as rep, i (rep.user_id + i)}
{rep.username} flagged it ·
- {REASON_LABELS[rep.reason] ?? rep.reason}{#if rep.notes} · {rep.notes}{/if}
+ {REASON_LABELS[rep.reason] ?? rep.reason}{#if rep.notes}{' · '}{rep.notes}{/if}
· {relativeTime(rep.created_at)}
{/each}
{#each r.errors as e (e.id)}
Failed to play for {e.username} ·
- {ERROR_LABELS[e.kind] ?? e.kind}{#if e.detail} · {e.detail}{/if} · {relativeTime(e.occurred_at)}
+ {ERROR_LABELS[e.kind] ?? e.kind}{#if e.detail}{` · ${e.detail}`}{/if} · {relativeTime(e.occurred_at)}
{/each}
{#if r.file_path}
diff --git a/web/src/routes/admin/reports/reports.test.ts b/web/src/routes/admin/reports/reports.test.ts
index 120d9661..0e772be7 100644
--- a/web/src/routes/admin/reports/reports.test.ts
+++ b/web/src/routes/admin/reports/reports.test.ts
@@ -103,7 +103,8 @@ describe('/admin/reports', () => {
setup([flagged], [failure('e2', 't2', 'Intro', 2)]);
expect(screen.getByRole('button', { name: /delete via lidarr for roygbiv/i })).toBeInTheDocument();
expect(screen.queryByRole('button', { name: /delete via lidarr for intro/i })).toBeNull();
- await fireEvent.click(screen.getAllByRole('button', { name: /more actions/i })[0]);
+ const roygbiv = screen.getAllByTestId('report-row').find((r) => r.textContent?.includes('Roygbiv'))!;
+ await fireEvent.click(within(roygbiv).getByRole('button', { name: /more actions/i }));
expect(within(screen.getByRole('menu')).getByText('Delete via Lidarr')).toBeInTheDocument();
});