Jupyter lite with pyodide crashes on safari on modern ipads
Description
I was getting reports that my Jupyter Lite-based app was not working on modern iPads with the pyodide kernel. (Not working means startup problem of the pyodide kernel, and also tab crashes) (However, it appears to work fine with the Xeus kernel.) The users had the 2024 iPad Pro. To verify (as I do not own such a thing), I went to a cloud testing service (I bought 100 minutes of testing). There, the iPad experience was flaky, sometimes the download or start of the wasm did not continue. However, when I selected a 2025 iPad Air with Safari (I suspect that only the newer ones are affected; I will test), I was able to access the Jupyter Lite demo page, but the tab immediately crashed. The browser logs were not helpful.
It may be two separate issues... (OOM is one possibility)
Reproduce
Please see the video that I will attach.
Expected behavior
Context
- JupyterLite version: Just the current demo
- Operating System and version: ios
- Browser and version: see video.
Browser Output
See video, but there was nothing interesting in particular, as it looks like a browser crash.
Here is the video: https://github.com/user-attachments/assets/faff172a-dd60-465d-887d-661a9b51767c
For the older ipads, you even see only a blank page when visiting the try jupyter page.
Unfortunately, I don't think any of the volunteer maintainers of this repo have consistent access to an effective testing rig for that browser and platform. Even if they did, keeping this working over time would require exploring a few options to not simply regress on the next version of any of the upstreams (most of which also aren't tested on that platform), or the platform/browser itself.
- getting a GHA
macos-latestworking with the full xcode environment, emulator, and testing environment - finding a SaaS that offers a free tier for open source projects to test under emulation or (less likely) real devices
This is true (also, I am not an Apple fan; the opposite is true). In this case, I don't know if it makes sense to file a bug with WebKit. Jupiter Lite may not be to blame. (It does not happen on the desktop version and also virtual emulators. I tried it with the cheap virtual emulators.) What do you think? Jupyter is essential enough for me to care.
What may be worth a try is the Jupyter project, which may apply for access to BrowserStack. They have an open-source program (https://www.browserstack.com/open-source). I actually stumbled upon the device farms a while ago, seeing their banner at an OS project, and ended up buying from the competition as they were cheaper.
Thanks @martenrichter for the report and the BrowserStack suggestion.
Do you know if plain Pyodide works with this setup? For example with https://pyodide.org/en/stable/console.html. There were some reports recently about this in https://github.com/pyodide/pyodide/issues/5428.
This would help better know if the issue is with Pyodide itself, or with the Pyodide kernel.
No, it does not work in this setup. So it is for sure a pyodide issue. I will try to point them to browser stack, but I believe that this is an issue for webkit itself.
https://github.com/pyodide/pyodide/issues/5670 is quite possibly the same issue. I assume that the 2025 iPad Air is running iPadOS 18, @martenrichter?
pyodide/pyodide#5670 is quite possibly the same issue. I assume that the 2025 iPad Air is running iPadOS 18, @martenrichter?
Yes, it says 18 in the browserstack menu. Additionally, my colleague, who reported this on an iPad Pro, informed me that it was running on the latest OS version.