From 11be2a31679151c380f48f6abe4976d986f04ab6 Mon Sep 17 00:00:00 2001 From: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com> Date: Mon, 6 Jul 2026 18:58:26 -0700 Subject: [PATCH] fix(images): fix stale images (#5462) * fix(images): fix stale images * Fix comment --- .../files/components/file-viewer/image-preview.tsx | 6 +++++- apps/sim/next.config.ts | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/image-preview.tsx b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/image-preview.tsx index 0bac2180be..e4ba803326 100644 --- a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/image-preview.tsx +++ b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/image-preview.tsx @@ -7,7 +7,11 @@ import { ZoomablePreview } from './zoomable-preview' export const ImagePreview = memo(function ImagePreview({ file }: { file: WorkspaceFileRecord }) { const source = useFileContentSource() - const serveUrl = source.buildUrl(file.key) + // Version the URL on updatedAt: overwrites keep the same storage key, so an unversioned + // URL would resolve to a previously cached copy instead of the rewritten bytes. + const serveUrl = source.buildUrl(file.key, { + version: Number(new Date(file.updatedAt)) || file.size, + }) return ( diff --git a/apps/sim/next.config.ts b/apps/sim/next.config.ts index 1d42e1c7c2..5f760789c4 100644 --- a/apps/sim/next.config.ts +++ b/apps/sim/next.config.ts @@ -177,7 +177,7 @@ const nextConfig: NextConfig = { async headers() { return [ { - source: '/:all*(svg|jpg|jpeg|png|gif|ico|webp|avif|woff|woff2|ttf|eot)', + source: '/((?!api/).*\\.(?:svg|jpg|jpeg|png|gif|ico|webp|avif|woff|woff2|ttf|eot))', headers: [ { key: 'Cache-Control',