diff --git a/ui/src/components/access/InvitesSection.test.tsx b/ui/src/components/access/InvitesSection.test.tsx
index be0403737f..6c46f9725b 100644
--- a/ui/src/components/access/InvitesSection.test.tsx
+++ b/ui/src/components/access/InvitesSection.test.tsx
@@ -207,7 +207,9 @@ describe("InvitesSection", () => {
"https://paperclip.local/invite/new-token",
);
expect(container.textContent).toContain("Copy link");
- expect(container.textContent).toContain("Open invite");
+ // The inviter opening their own single-use link is never what they
+ // mean, so the section deliberately offers no "Open invite" action.
+ expect(container.textContent).not.toContain("Open invite");
expect(pushToastMock).toHaveBeenCalledWith({
title: "Invite created",
body: "Invite ready below and copied to clipboard.",
diff --git a/ui/src/components/access/InvitesSection.tsx b/ui/src/components/access/InvitesSection.tsx
index bc1c274156..db6f22c76e 100644
--- a/ui/src/components/access/InvitesSection.tsx
+++ b/ui/src/components/access/InvitesSection.tsx
@@ -1,6 +1,6 @@
import { useEffect, useMemo, useRef, useState } from "react";
import { useInfiniteQuery, useMutation, useQueryClient } from "@tanstack/react-query";
-import { Check, Copy, ExternalLink } from "lucide-react";
+import { Check, Copy } from "lucide-react";
import { accessApi } from "@/api/access";
import { ApiError } from "@/api/client";
import { Button } from "@/components/ui/button";
@@ -271,12 +271,6 @@ export function InvitesSection() {
Copy link
-
) : null}