AttributeError: 'google.protobuf.pyext._message.RepeatedScalarConta' object has no attribute 'uploaded_file_info'

Hello, I just upgraded to streamlit version 0.88.0 from 0.85.1 and get the following attribute error on my 0.85.1 working project:

AttributeError: ‘google.protobuf.pyext._message.RepeatedScalarConta’ object has no attribute ‘uploaded_file_info’

On a whim, I pip install -U protobuf==3.8.0 but after streamlit run main.py I get:

AttributeError: module ‘google.protobuf.descriptor’ has no attribute ‘_internal_create_key’

Thus, I’ve pip install -U protobuf==3.18.0 back which goes back to the original attribute error.

More details:

2021-09-15 16:16:05.352 Traceback (most recent call last):
File “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/streamlit/script_runner.py”, line 351, in _run_script
self._session_state.call_callbacks()
File “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/streamlit/state/session_state.py”, line 398, in call_callbacks
changed_widget_ids = [
File “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/streamlit/state/session_state.py”, line 399, in
wid for wid in self._new_widget_state if self._widget_changed(wid)
File “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/streamlit/state/session_state.py”, line 405, in _widget_changed
new_value = self._new_widget_state.get(widget_id)
File “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_collections_abc.py”, line 762, in get
return self[key]
File “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/streamlit/state/session_state.py”, line 120, in getitem
deserialized = metadata.deserializer(value, metadata.id)
File “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/streamlit/elements/file_uploader.py”, line 166, in deserialize_file_uploader
file_recs = self._get_file_recs(widget_id, ui_value)
File “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/streamlit/elements/file_uploader.py”, line 243, in _get_file_recs
uploaded_file_info = widget_value.uploaded_file_info
AttributeError: ‘google.protobuf.pyext._message.RepeatedScalarConta’ object has no attribute ‘uploaded_file_info’

Hi @comgeek, could you try seeing if the bug persists after the streamlit server is restarted and a new tab is opened to load the app?

As described in the GitHub issue for this particular bug (streamlit 0.88.0 upload button · Issue #3764 · streamlit/streamlit · GitHub), this happens when there’s a mismatch between the streamlit versions running on the frontend and server. I’m not sure why the code to refresh the page in this scenario didn’t work, but this bug should go away once the backend and frontend have versions that are in sync.