ipywidgets
ipywidgets copied to clipboard
FileUpload widget - can not upload files >= 1MB (google colab)
Description
Hi, thank you for a great library. I just came across a problem using the Upload widget. I am using google colab but after my understanding at this point, the problem could arise in other environments too. In fact there may be an other ticket for it #2522 There a workaround is proposed. Sadly I could not apply the workaround to Colab. I do not know if this problem can be solved technically, but maybe it would already help to add some feedback for the user.
Reproduce
Google Colab notbook for testing
- klick the link and go to the notebook
- Upload a file that has <1MB filesize (I tried it with a .csv with 150kb)
- The output of the second cell will say 1. (the uploader.value has a length of 1)
- Re-run the first cell (to reset the upload-widget)
- Then try the same with a file >1MB
- The file counter on the upload button will say one but the output of the second cell is 0, as the uploader.value has length 0
One thing I noticed additionally is that the colab runtime does a reconnect after step 5.
Expected behavior
Ideally there would be some sort of an error message, if the file I try to upload is larger then the limits of the system. Now I do not know if this would be even possible, technically. Then it would be good to have some feedback even if it is a message like "Ups sorry something went wrong with the upload please see this link" or something like it. As at first I had no idea that the error even occurred in the widget. And thirdly, I would suggest to only increase the upload counter only if the upload was successful, maybe the counter could correspond to the length of widget.value.
Context
- ipywidgets version 7.7.0
There is an error in the dev console, when uploading a file > 1MB, the details of which are quite long but one line says:
"SocketIO error: /session: xhr post error: 0 - TransportError"
(The reproduce just open dev console on step 5)
Browser Output
hg https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:198
(Async: setTimeout handler)
hg https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:198
receivedError https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:4042
connect https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:5502
emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:148
emitAll https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:68
onerror https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:74
exports https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:155
emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
onError https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:96
setTransport https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:86
emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
onError https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:113
doWrite https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:102
emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
onError https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:106
onreadystatechange https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:105
(Async: setTimeout handler)
onreadystatechange https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:105
(Async: EventHandlerNonNull)
create https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:104
l https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:100
request https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:102
doWrite https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:102
write https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:111
encodePayloadAsBlob https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:123
l https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:126
A https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
encodePayloadAsBlob https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:123
encodePacket https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:116
encodePayloadAsBlob https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:122
A https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
g https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
encodePayloadAsBlob https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:122
encodePayload https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:119
write https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:111
send https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:114
flush https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:94
onDrain https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:93
setTransport https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:86
emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
h https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:111
emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
onSuccess https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:105
onData https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:106
onLoad https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:107
onreadystatechange https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:105
(Async: EventHandlerNonNull)
create https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:104
l https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:100
request https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:102
doWrite https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:102
write https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:111
encodePayload https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:120
l https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:126
A https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
encodePayload https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:120
encodePacket https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:117
encodePayload https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:119
A https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
g https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
encodePayload https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:119
write https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:111
send https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:114
flush https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:94
sendPacket https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:95
send https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:94
packet https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:75
g https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:55
removeBlobs https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:64
g https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:55
encode https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:56
packet https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:75
packet https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:149
emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:149
sendBinary https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:5503
send https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:5201
send https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:5231