From ddcc05f5f4a28a44ec9f03c04b91c599a2b6087b Mon Sep 17 00:00:00 2001 From: Tyler Yust Date: Sat, 17 Jan 2026 03:29:22 -0800 Subject: [PATCH] fix: improve error handling for file URL processing - Enhanced error handling in image reference detection to skip malformed file URLs without crashing. - Updated media loading logic to throw an error for invalid file URLs, ensuring better feedback for users. --- src/agents/pi-embedded-runner/run/images.ts | 8 ++++++-- src/web/media.ts | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/agents/pi-embedded-runner/run/images.ts b/src/agents/pi-embedded-runner/run/images.ts index fbfe9ee21..accaa8d73 100644 --- a/src/agents/pi-embedded-runner/run/images.ts +++ b/src/agents/pi-embedded-runner/run/images.ts @@ -128,8 +128,12 @@ export function detectImageReferences(prompt: string): DetectedImageRef[] { if (seen.has(raw.toLowerCase())) continue; seen.add(raw.toLowerCase()); // Use fileURLToPath for proper handling (e.g., file://localhost/path) - const resolved = fileURLToPath(raw); - refs.push({ raw, type: "path", resolved }); + try { + const resolved = fileURLToPath(raw); + refs.push({ raw, type: "path", resolved }); + } catch { + // Skip malformed file:// URLs + } } // Pattern for file paths (absolute, relative, or home) diff --git a/src/web/media.ts b/src/web/media.ts index 4768772d1..48b375bef 100644 --- a/src/web/media.ts +++ b/src/web/media.ts @@ -27,7 +27,11 @@ async function loadWebMediaInternal( const { maxBytes, optimizeImages = true } = options; // Use fileURLToPath for proper handling of file:// URLs (handles file://localhost/path, etc.) if (mediaUrl.startsWith("file://")) { - mediaUrl = fileURLToPath(mediaUrl); + try { + mediaUrl = fileURLToPath(mediaUrl); + } catch { + throw new Error(`Invalid file:// URL: ${mediaUrl}`); + } } const optimizeAndClampImage = async (buffer: Buffer, cap: number) => {