{"record":{"id":"02fe7d7f1c877a9a","repo":"vercel/next.js","slug":"image-with-src-src-has-invalid-placeholder","errorCode":null,"errorMessage":"Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".","messagePattern":"Image with src \"(.+?)\" has invalid \"placeholder\" property \"(.+?)\"\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/next/src/shared/lib/get-img-props.ts","lineNumber":567,"sourceCode":"        `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n      )\n    }\n    if (preload && loading === 'lazy') {\n      throw new Error(\n        `Image with src \"${src}\" has both \"preload\" and \"loading='lazy'\" properties. Only one should be used.`\n      )\n    }\n    if (preload && priority) {\n      throw new Error(\n        `Image with src \"${src}\" has both \"preload\" and \"priority\" properties. Only \"preload\" should be used.`\n      )\n    }\n    if (\n      placeholder !== 'empty' &&\n      placeholder !== 'blur' &&\n      !placeholder.startsWith('data:image/')\n    ) {\n      throw new Error(\n        `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n      )\n    }\n    if (placeholder !== 'empty') {\n      if (widthInt && heightInt && widthInt * heightInt < 1600) {\n        warnOnce(\n          `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n        )\n      }\n    }\n    if (\n      qualityInt &&\n      config.qualities &&\n      !config.qualities.includes(qualityInt)\n    ) {\n      warnOnce(\n        `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(', ')}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(', ')}].` +\n          `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`","sourceCodeStart":549,"sourceCodeEnd":585,"githubUrl":"https://github.com/vercel/next.js/blob/0eb377541648e63402a47b38fee00a8d0ce8f8f1/packages/next/src/shared/lib/get-img-props.ts#L549-L585","documentation":"Props validation in getImgProps: the placeholder value is neither 'empty', 'blur', nor a data: URI. Placeholder support is limited to those forms, so anything else (e.g. an arbitrary string) is rejected before it reaches the img markup.","triggerScenarios":"next/image placeholder prop is invalid.","commonSituations":"Passing a value other than 'blur' or 'empty' as placeholder.","solutions":["Set placeholder to \"blur\" or \"empty\", or remove it."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0eb377541648e63402a47b38fee00a8d0ce8f8f1","analyzedAt":"2026-08-19T02:10:13.922Z","contentChangedAt":"2026-08-19T02:10:13.922Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}