Release notes - Streamlit Docs

Release notes

This page lists highlights, bug fixes, and known issues for the latest release of Streamlit. If you're looking for information about nightly releases or experimental features, see Pre-release features.

star

Tip

To upgrade to the latest version of Streamlit, run:

Terminal
pip install --upgrade streamlit

Release date: May 28, 2026

Highlights

  • 🌟 Introducing parallel=True for @st.fragment, which lets fragments run concurrently for more responsive apps and background-style workflows (#15214).
  • 🍿 Introducing st.pagination to help you build paged interfaces, e.g. for dataframes (#14975, #10785).
  • 🚀 Announcing streamlit skills, a new CLI command for installing AI agent skills (#15116).

Notable Changes

  • 🔔 st.App now supports custom script error handling, letting you attach a custom exception handler to your app (#14972, #3426, #8713).
  • 📐 st.expander and st.status have a new type parameter for a more compact visual style (#14054, #13246).
  • 👻 The deprecated element.add_rows feature has been removed (#15034, #299, #13063, #7994, #5860).
  • 👻 LangChain callback handler integration has been removed (#15051).

Other Changes

  • 🐛 Query-parameter-bound widgets now keep the URL in sync when their values change through Session State (#14744).
  • 🖌 Widget and icon sizing is more consistent across the app (#15056, #15098, #13945).
  • ⏱ Streamlit reduces the timeout for external IP lookups to avoid startup freezes when the lookup is slow or unavailable (#14984).
  • 🛡 st.markdown now blocks javascript: and vbscript: URLs in Markdown links (#15161).
  • 🐛 Bug fix: Streamlit now supports symlinks in Starlette static file serving (#15112, #13600).
  • 🦋 Bug fix: Fragment apps no longer crash because of stale auto-reruns (#15130, #15084).
  • 🪲 Bug fix: blake2b hashing now uses usedforsecurity=False for FIPS-compatible environments (#15149, #15148). Thanks, andriykislitsyn!
  • 🐜 Bug fix: st.login cookies now restore 30-day persistence with a Max-Age value (#15194, #15193). Thanks, GiovanniPaoloGibilisco!
  • 🐝 Bug fix: OAuth PKCE behavior has been restored in the Starlette-based auth flow (#15282, #15115).
  • 🐞 Bug fix: OAuth no longer regresses with MismatchingStateError after upgrading to 1.57.0 (#15048, #14991).
  • 🕷️ Bug fix: Provider tokens now use joserfc, improving auth compatibility and token handling (#15178, #15170).
  • 🪳 Bug fix: st.vega_lite_chart tooltips work again inside dialogs (#15191, #12390). Thanks, marawanokasha!
  • 🪰 Bug fix: st.button warns when a keyboard shortcut is reserved by the browser (#15217, #15216).
  • 🦠 Bug fix: st.markdown shows its help icon again when unsafe_allow_html=True (#15232, #15211).
  • 🦟 Bug fix: Browser Back/Forward navigation now works for pages with Unicode URL paths (#15281, #15267).
  • 🦂 Bug fix: Programmatically closed popovers and expanders no longer reopen when you interact with another container (#14945, #14943).
  • 🦗 Bug fix: st.selectbox no longer hides its first option when exactly seven options are selected (#14997, #14989).
  • 🕸️ Bug fix: st.multiselect disables "Select all" for very large option lists to avoid performance problems (#15301, #14918, #15299).
  • 🐌 Bug fix: Tables, dataframes, and data editors no longer accidentally overscroll during interaction (#15309). Thanks, kantuni!
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.