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
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?
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
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.
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.
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.