From fea585ae3dbb4e4e6bcc43cab6e6018edfeb6272 Mon Sep 17 00:00:00 2001 From: Willem Jiang Date: Fri, 31 Oct 2025 22:30:34 +0800 Subject: [PATCH] fix: prevent DOM error when removing temporary download link (#675) (#676) Add defensive checks before removeChild to prevent 'Failed to execute removeChild' error when the element has already been removed from DOM. Wrap URL.revokeObjectURL in finally block to ensure proper resource cleanup. --- web/src/app/chat/components/research-block.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/web/src/app/chat/components/research-block.tsx b/web/src/app/chat/components/research-block.tsx index c60428b..8cebffc 100644 --- a/web/src/app/chat/components/research-block.tsx +++ b/web/src/app/chat/components/research-block.tsx @@ -87,8 +87,13 @@ export function ResearchBlock({ document.body.appendChild(a); a.click(); setTimeout(() => { - document.body.removeChild(a); - URL.revokeObjectURL(url); + try { + if (a.parentNode) { + a.parentNode.removeChild(a); + } + } finally { + URL.revokeObjectURL(url); + } }, 0); }, [reportId]);