Skip to content

[Bug]: Firefox: Download image button downloads HTML code instead of PNG #7932

Closed
@michnovka

Description

@michnovka

What happened?

I used OpenAI image generation, and when I click on the image to show it in full size, and then on top right Download icon, it downloads a .png file that is ~4.6kB. Upon inspection, I see it has HTML code inside and is not a valid PNG

I was able to reproduce this in Firefox only, in Chrome it works as expected.

Version Information

ghcr.io/danny-avila/librechat-dev latest 45865149dbf3 2 days ago 1.06GB

Steps to Reproduce

I am using Firefox on Ubuntu 24.04 - on Chrome I was not able to reproduce this, it works as intended.

  1. use agent with OpenAI tools to generate an image
  2. open the image modal
  3. click on the download icon
  4. inspect the downloaded PNG file

Image


Upon checking network tools the URL called was:

/images/66c846f7809c9f24886b9058/8277a4e8-8e19-4be1-bb93-3460c8c72ee3-image_gen_oai_call_5HvHH0emQrgZr58pUdZMTYaS_img_L4JPdW7MKjcelkofWsy-z.png

The response was 200 OK, text/html; charset=UTF-8

The contents of the downloaded png file are:

<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8" />
    <meta name="theme-color" content="#171717" />
    <meta name="mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
    <meta name="description" content="LibreChat - An open source chat application with support for multiple AI models" />
    <title>LibreChat</title>
    <link rel="shortcut icon" href="#" />
    <link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png" />
    <link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png" />
    <link rel="apple-touch-icon" href="/assets/apple-touch-icon-180x180.png" />
    <meta name="viewport" content="width=device-width, initial-scale=1, interactive-widget=resizes-content" />
    <style>
      html,
      body {
        margin: 0;
        padding: 0;
        height: 100%;
      }
    </style>
    <script>
      const theme = localStorage.getItem('color-theme');
      const loadingContainerStyle = document.createElement('style');
      let backgroundColor;

      if (theme === 'dark') {
        backgroundColor = '#0d0d0d';
      } else if (theme === 'light') {
        backgroundColor = '#ffffff';
      } else if (theme === 'system') {
        const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)').matches;
        backgroundColor = prefersDarkScheme ? '#0d0d0d' : '#ffffff';
      } else {
        backgroundColor = '#ffffff';
      }

      loadingContainerStyle.innerHTML = `
        #loading-container {
          display: flex;
          align-items: center;
          justify-content: center;
          height: 100vh;
          background-color: ${backgroundColor};
        }
      `;
      document.head.appendChild(loadingContainerStyle);
    </script>
    <script type="module" crossorigin src="/assets/react-interactions.BtNGmjtR.js"></script>
    <script type="module" crossorigin src="/assets/markdown_highlight.YFvJ8PVJ.js"></script>
    <script type="module" crossorigin src="/assets/validation.PQVr34Q_.js"></script>
    <script type="module" crossorigin src="/assets/math-katex.iIKN0cd0.js"></script>
    <script type="module" crossorigin src="/assets/vendor.DXtbSsWV.js"></script>
    <script type="module" crossorigin src="/assets/i18n.r6zVAoiJ.js"></script>
    <script type="module" crossorigin src="/assets/locales.COPKMiK_.js"></script>
    <script type="module" crossorigin src="/assets/routing.DIm8L005.js"></script>
    <script type="module" crossorigin src="/assets/radix-ui.Tcerz_1_.js"></script>
    <script type="module" crossorigin src="/assets/tanstack-vendor.Bc3o6CH5.js"></script>
    <script type="module" crossorigin src="/assets/http-client.DkbkpEHu.js"></script>
    <script type="module" crossorigin src="/assets/date-utils.j-oxXFG2.js"></script>
    <script type="module" crossorigin src="/assets/utilities.DczjhRIE.js"></script>
    <script type="module" crossorigin src="/assets/framer-motion.X2YC0yv7.js"></script>
    <script type="module" crossorigin src="/assets/advanced-inputs.BwMA5rZ4.js"></script>
    <script type="module" crossorigin src="/assets/animations.C5-GP2xT.js"></script>
    <script type="module" crossorigin src="/assets/forms.5WOGZjmk.js"></script>
    <script type="module" crossorigin src="/assets/security-ui.DGIaIMBl.js"></script>
    <script type="module" crossorigin src="/assets/markdown-processing.BAht9_v4.js"></script>
    <script type="module" crossorigin src="/assets/avatars.DlTYoDdb.js"></script>
    <script type="module" crossorigin src="/assets/headlessui.x_s61Mok.js"></script>
    <script type="module" crossorigin src="/assets/virtualization.DKQ29DoO.js"></script>
    <script type="module" crossorigin src="/assets/codemirror-state.Pf71Wo5N.js"></script>
    <script type="module" crossorigin src="/assets/codemirror-view.CmuSJs-L.js"></script>
    <script type="module" crossorigin src="/assets/codemirror-language.5ijRz42u.js"></script>
    <script type="module" crossorigin src="/assets/codemirror-core.J0vSLMyp.js"></script>
    <script type="module" crossorigin src="/assets/sandpack.D91zKbYv.js"></script>
    <script type="module" crossorigin src="/assets/index.CBdTKHHQ.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/math-katex.CihyawKy.css">
    <link rel="stylesheet" crossorigin href="/assets/index.C5ydvme2.css">
  <link rel="manifest" href="/manifest.webmanifest" crossorigin="use-credentials"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
  <body>
    <div id="root">
      <div id="loading-container"></div>
    </div>
  </body>
</html>

What browsers are you seeing the problem on?

No response

Relevant log output

N/A

Screenshots

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    🐛 bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions