{"record":{"id":"f204a67e6614719d","repo":"remotion-dev/remotion","slug":"could-not-load-the-lut-sample-image-check-your-internet","errorCode":null,"errorMessage":"Could not load the LUT sample image. Check your internet connection.","messagePattern":"Could not load the LUT sample image\\. Check your internet connection\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/studio/src/components/LutPreview.tsx","lineNumber":189,"sourceCode":"\t\timage.crossOrigin = 'anonymous';\n\t\tsetState({type: 'loading'});\n\n\t\tconst load = async () => {\n\t\t\tconst response = await fetch(src, {signal: controller.signal});\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(`Could not load LUT (HTTP ${response.status}).`);\n\t\t\t}\n\n\t\t\tconst lut = parseCubeLut(await response.text());\n\t\t\tif (controller.signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\timage.src = sampleImage;\n\t\t\ttry {\n\t\t\t\tawait image.decode();\n\t\t\t} catch {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Could not load the LUT sample image. Check your internet connection.',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (controller.signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst before = beforeRef.current?.getContext('2d');\n\t\t\tconst after = afterRef.current?.getContext('2d');\n\t\t\tif (!before || !after) {\n\t\t\t\tthrow new Error('Could not create the LUT preview canvas.');\n\t\t\t}\n\n\t\t\tbefore.drawImage(image, 0, 0, previewWidth, previewHeight);\n\t\t\tconst pixels = before.getImageData(0, 0, previewWidth, previewHeight);\n\t\t\tapplyCubeLut(pixels.data, lut);\n\t\t\tafter.putImageData(pixels, 0, 0);","sourceCodeStart":171,"sourceCodeEnd":207,"githubUrl":"https://github.com/remotion-dev/remotion/blob/46a3a6bf13ca367376ff18bbb06dae2e87e0d068/packages/studio/src/components/LutPreview.tsx#L171-L207","documentation":"Before applying the LUT, LutPreview loads a sample image via an <img> element and image.decode(). If decoding fails (network error, broken image, CORS taint), the component throws this error to explain that the preview's sample image could not be loaded.","triggerScenarios":"Calling LutPreview (rendering the LUT preview UI in Studio) when the hardcoded/sample sample image URL fails: no internet connection, the image host is unreachable, or decode() rejects due to a corrupted or CORS-blocked image.","commonSituations":"Developing Studio behind a corporate firewall or offline; the sample image CDN is down or blocked; DNS failures in CI or sandboxed environments; ad-blockers intercepting the image request.","solutions":["Check your internet connection — the sample image is fetched from a remote URL.","Open DevTools > Network and confirm the sample image request; unblock it if an extension/proxy blocks it.","Verify the sample image URL in LutPreview.tsx still resolves (curl -I it); update it if the host moved.","If offline usage is required, replace the remote sample with a locally bundled image."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"try {\n  const probe = new Image();\n  await new Promise((res, rej) => { probe.onload = res; probe.onerror = rej; probe.src = sampleImage; });\n} catch { console.warn('Sample image unreachable'); }","typeGuard":null,"tryCatchPattern":"try {\n  await image.decode();\n} catch {\n  // fall back to a bundled placeholder or retry once\n}","preventionTips":["Check connectivity before opening LUT previews in offline/CI environments.","Consider bundling the sample image locally instead of fetching it remotely.","Whitelist the image host in proxies/ad-blockers used in dev."],"tags":["network","image-loading","lut","offline"],"backgroundTag":"network-request-failed","analyzedSha":"46a3a6bf13ca367376ff18bbb06dae2e87e0d068","analyzedAt":"2026-09-18T00:12:20.256Z","contentChangedAt":"2026-09-18T00:12:20.256Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}