Migrating to Streamlit 1.50.0
Version 1.50.0 introduces 5 breaking changes. This guide details how to update your code.
Released: 9/23/2025
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
st.plotly_chartst.checkboxst.togglest.writest.number_inputst.text_areast.text_inputst.time_inputst.date_inputst.selectboxst.multiselectst.buttonst.tabsst.tablest.line_chartst.bar_chartst.audio_inputst.graphviz_chartCopyButtonMetricst.dataframest.data_editorBreaking Changes
●Issue #1
Removed support for arbitrary keyword arguments in `st.plotly_chart`; use the new `config` dictionary instead (e.g., `st.plotly_chart(fig, config={...})`).
●Issue #2
Widget identity now relies on the `key` parameter for `st.checkbox` and `st.toggle`; ensure you provide a stable `key` to avoid unexpected state changes.
●Issue #3
The `st.write` function no longer accepts `**kwargs`; remove any extra keyword arguments and rely on default behavior.
●Issue #4
Widget identity for `st.number_input` now uses the `key` parameter; add a consistent `key` to maintain state.
●Issue #5
Widget identity for `st.text_area` and `st.text_input` now uses the `key` parameter; provide a `key` to preserve input values.
Migration Steps
- 1Replace any `**kwargs` passed to `st.plotly_chart` with a `config` dictionary.
- 2Add a stable `key` argument to `st.checkbox`, `st.toggle`, `st.number_input`, `st.text_area`, `st.text_input`, `st.time_input`, `st.date_input`, `st.selectbox`, `st.multiselect`, and button widgets.
- 3Remove all `**kwargs` arguments from calls to `st.write`.
- 4Test widgets after adding `key` to ensure state persists as expected.
Release Summary
Streamlit 1.50.0 introduces widget identity changes using `key`, deprecates `**kwargs` in several APIs, adds extensive theming and layout enhancements, and includes numerous bug fixes and performance improvements.
Need More Details?
View the full release notes and all changes for Streamlit 1.50.0.
View Full Changelog