Snowflake Projects -> Streamlit Versioning Cadence

Hi Streamlit Community,

My team is observing version inconsistencies in a Streamlit app deployed via Snowflake’s native Streamlit integration, and we’re hoping for clarification on how version control works in this environment.


Context

We are not using Streamlit Community Cloud, and we are not hosting this on GitHub or a custom cloud platform.
The app is created and deployed directly via Snowsight (Snowflake UI → Projects → Streamlit).


What We Observed

We were exploring ways to detect the current session active user from within a Snowflake Streamlit app. While testing, we noticed:

  • On my side, this line works as expected: st.experimental_user.user_name

  • On my coworker A’s session, this line triggers:

Please replace st.experimental_user with st.user. st.experimental_user will be removed after 2025-11-06.

  • When I try st.user, I get:

AttributeError: module streamlit has no attribute user

  • Upon checking, we found:
    • My session shows Streamlit ‘Latest’
      • I didn’t get to test what exact version# I was on, this is what was showing in my package / Anaconda version drop down menu
    • Coworker A is on 1.45.0
    • Coworker B is on 1.46.0
    • When I tried pinning streamlit==1.46.0 in the environment.yml, it resolved to 1.45.1. And in the package drop down menu selection, my latest version only goes up to 1.45.1. And btw, 1.45.0 is the lowest version where st.user is introduced when I tested version by version. So if my streamlit was already on 1.45.1 / the supposed “Latest”, I shouldn’t have ran into an AttributeError there

Our Questions

  1. Is it to be expected that different users (under the same corporate Snowflake account) see different latest available Streamlit versions? Or is this set by account admins?

  2. Is there a intended / officially supported way to ensure version consistency within the Snowflake-managed Streamlit runtime? Our concern is the users’ side may experience similar issues and error out


Thank you in advance for your time and help! :folded_hands:

Hi Jing,

Regarding different Streamlit versions, I don’t believe you should see different Streamlit versions across the same account. I don’t work for Snowflake so don’t know if they have additional Anaconda channels for preview etc but all available packages for Snowflake come from their Anaconda channel here. I would expect all Snowflake customers to be seeing the same packages let alone different users within an account. It is strange that you say a user on your account saw Streamlit 1.46 as the latest is only 1.45.1 and only came out this month on Snowflake.

I think the way you’ve mentioned using your environment.yml file to control packages is the officially supported way. The dropdown you see in the UI is just a visual way of doing the same. You’ll see any changes you make using the dropdown in environment.yml if you refresh. Another way to check is using the desc streamlit command in a worksheet. If you pass it the Streamlit app identifier you’ll get various fields back, one of which is user_packages which lists what packages are in your environment.yml file.

One thing to mention that I’ve found when using SiS is that sometimes you need to refresh the page for things to take effect. If you’ve been using Streamlit 1.44, changed the package in the UI as well as updating your code to use a new API like st.user from the new version, it might still be referencing the old package so would throw the error. Pressing Run isn’t always enough as I think this only reruns the Streamlit script rather than restarting everything like Reboot or refreshing the page would.

1 Like

Hi Kevin,

Thank you so much for your response! We later discovered that our team member had 1.46.0 in their yml file and assumed that was the version available to them. However, when the version number was printed to verify, theirs was actually limited to 1.45.1 as well.

Apologies for any confusion caused by my questions. I really appreciate your insights and guidance! We’ve since implemented a version check for the current session to mitigate potential issues with version variability. But I’m relieved to learn that we don’t need to be concerned with version variability for future projects.

Thank you again for your helpful response!

1 Like