From e4315282a2f3fc7f54bd54c2fb9aaff007cd42cd Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 16 Feb 2026 11:40:04 +0800 Subject: [PATCH] fix: keep remote image markdown when normalization fails --- app/(chat)/api/chat/route.ts | 39 +++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/app/(chat)/api/chat/route.ts b/app/(chat)/api/chat/route.ts index 1b68d533f..96917c7e6 100644 --- a/app/(chat)/api/chat/route.ts +++ b/app/(chat)/api/chat/route.ts @@ -929,18 +929,37 @@ async function normalizeAssistantImageMarkdown( altText, thumbnailUrl ); - const hostedThumbnailUrl = await ensureHostedImageUrl(thumbnailUrl); - const hostedOriginalUrl = - originalUrl && originalUrl !== thumbnailUrl - ? await ensureHostedImageUrl(originalUrl) - : hostedThumbnailUrl; - uploadedUrls.push(hostedThumbnailUrl); - uploadedUrls.push(hostedOriginalUrl); - rebuilt += `![thumb|||${hostedOriginalUrl}|||${parsedImageSize || imageSize}](${hostedThumbnailUrl})`; + let hostedThumbnailUrl = thumbnailUrl; + let hostedOriginalUrl = + originalUrl && originalUrl !== thumbnailUrl ? originalUrl : thumbnailUrl; + + try { + hostedThumbnailUrl = await ensureHostedImageUrl(thumbnailUrl); + } catch (error) { + console.error("[Chat API] Failed to normalize remote thumbnail URL:", error); + } + + if (originalUrl && originalUrl !== thumbnailUrl) { + try { + hostedOriginalUrl = await ensureHostedImageUrl(originalUrl); + } catch (error) { + console.error("[Chat API] Failed to normalize remote original URL:", error); + hostedOriginalUrl = hostedThumbnailUrl || originalUrl; + } + } else { + hostedOriginalUrl = hostedThumbnailUrl; + } + + const finalThumbnailUrl = hostedThumbnailUrl || thumbnailUrl; + const finalOriginalUrl = hostedOriginalUrl || finalThumbnailUrl; + + uploadedUrls.push(finalThumbnailUrl); + uploadedUrls.push(finalOriginalUrl); + rebuilt += `![thumb|||${finalOriginalUrl}|||${parsedImageSize || imageSize}](${finalThumbnailUrl})`; } catch (error) { - console.error("[Chat API] Failed to normalize remote image URL:", error); - rebuilt += ""; + console.error("[Chat API] Failed to parse remote image markdown metadata:", error); + rebuilt += matchText; } cursor = start + matchText.length;