{"record":{"id":"ca4234783b5e2fa6","repo":"gatsbyjs/gatsby","slug":"the-image-node-url-with-alt-text-node-al","errorCode":null,"errorMessage":"The image \"${node.url}\" (with alt text: \"${node.alt}\") doesn't appear to be a supported image format.","messagePattern":"The image \"(.+?)\" \\(with alt text: \"(.+?)\"\\) doesn't appear to be a supported image format\\.","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby-remark-images-contentful/src/index.js","lineNumber":92,"sourceCode":"        url: originalImg, // for some reason there is a './' prefix\n        responseType: `stream`,\n      })\n    } catch (err) {\n      reporter.panic(\n        `Image downloading failed for ${originalImg}, please check if the image still exists on contentful`,\n        err\n      )\n      return []\n    }\n\n    response.data.pipe(metaReader)\n\n    let metadata\n    try {\n      metadata = await metaReader.metadata()\n    } catch (error) {\n      console.log(error)\n      reporter.panic(\n        `The image \"${node.url}\" (with alt text: \"${node.alt}\") doesn't appear to be a supported image format.`,\n        error\n      )\n    }\n\n    response.data.destroy()\n\n    const responsiveSizesResult = await buildResponsiveSizes(\n      {\n        metadata,\n        imageUrl: originalImg,\n        options,\n      },\n      reporter\n    )\n\n    // Calculate the paddingBottom %\n    const ratio = `${(1 / responsiveSizesResult.aspectRatio) * 100}%`","sourceCodeStart":74,"sourceCodeEnd":110,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/8b06340921ffdf23125a365b9c9923690cb62ce6/packages/gatsby-remark-images-contentful/src/index.js#L74-L110","documentation":"Thrown in generateImagesAndUpdateNode after streaming the downloaded Contentful asset into an image-metadata reader (probe of the file's binary headers). The metadata parse rejects, meaning the bytes at node.url are not a decodable image (unsupported format, HTML/XML error page saved instead of an image, or a corrupted/truncated download). It is a generic sentinel panic: the underlying parser error is swallowed and re-reported as an 'unsupported image format' message, so the real fault is the content served at node.url, not the alt text shown in the message.","triggerScenarios":"Thrown at packages/gatsby-remark-images-contentful/src/index.js:92 when the library encounters an invalid state.","commonSituations":"Occurs in gatsby-remark-images-contentful when a Contentful image node URL points to a format Sharp cannot process (e.g. SVG, TIFF, or a broken URL). Prevent it by confirming the asset in Contentful is a supported raster format (JPEG, PNG, WebP, GIF) and that the URL is reachable.","solutions":["Verify the image URL points to a supported format (JPEG, PNG, GIF, WebP, AVIF). Convert or replace the image in Contentful if it uses an unsupported format.","Check that the Contentful asset is published and the URL returns an image content type rather than an error page or JSON."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8b06340921ffdf23125a365b9c9923690cb62ce6","analyzedAt":"2026-08-13T02:36:21.405Z","contentChangedAt":"2026-08-13T02:36:21.405Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}