Problem with download button on st.dataframes


  • The app is deployed on AWS as a Docker container.
  • Embedded on a Vue app.
  • Python 3.10.12
  • Streamlit 1.30.0 (Issue was present before updating)

For reference, this is the download I’m referring to:

Hello everyone! To make it short, I have an app that work as a dashboard, with multiple st.dataframes. The download of CSV is not something that I use often, but to my surprise when I tried I noticed the feature doesn’t work. I was pretty sure this wasn’t an issue before, so searched for info on this error to no avail and then tried to fix it.
From what I can gather the issue is with the app being embedded and restrictions on web browsers not allowing incoming download windows from iframes.

From dev tools while hitting download:

7673.0828a05e.chunk.js:2 Uncaught (in promise) DOMException: Failed to execute 'showSaveFilePicker' on 'Window': Cross origin sub frames aren't allowed to show a file picker.

I corroborated this by running the app directly from its container without embedding, where the download button works flawlessly.

That being said:

  1. Is there any plans to have a parameter to force a download directly to the download folder instead of the window modal appearing (the thing that fails while being embedded)?
  2. Is there a way to circumvent the issue at this point in time?

Any suggestion or advice is welcome.

Same question…any idea?

Same problem even with the 1.32.2

Any news on this?

This is fixed in 1.35. Note the enforceDownloadInNewTab host config value.