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.