HTML5 export doesn't work on iOS 15.8

Godot Version

4.7.1

Question

I have exported a small game for the web using the HTML5 export in project settings. Nothing fancy mostly all standard. On Android and PC no problem to load the game, but on iOS 15.8 I get a weird error in the Javascript console and loading stops, so the loading bar stays on the screen. After some back and forth with an LLM it seems that opcode 250 or SIMD in webassembly can be the culprit because that isn’t supported in iOS 15.

So i created an empty game with only a main 2D scene and a Hello World label and tried again. Still not working on iOS 15, but on iOS 25 there is no problem at all and everything loads like expected. According to the LLM SIMD is added in iOS 16.

So I have some questions:

  1. Is there an option in the export to disable SIMD
  2. Should I report this to the bugtracker because there is no mention of minimal OS-version in the documentation

Could you copy and paste this weird error?

It’s on iOS and I’m on a GNU/Linux so copy-past isn’t going to work :cry: . Back to hard typing labor. There are different errors, the first time I load the page with the game, I get:

CompileError: WebAssembly.Module doesn't parse at byte 88: invalid opcode 253, in function at index 231

Repeatedly reload the page and I always get:

CompileError: WebAssembly.Module doesn't parse at byte 5: can't get Function local's type in group 1, in function at index 0

This is a from a game with just one scene with a label and then exported as a HTML game.

Which renderer are you using?

The Project Settings → Rendering → Renderer says:

  • Rendering Method: mobile
  • Rendering Method.web: gl_compatibility
  • Rendering Method.mobile: mobile

I think iOS 15.8 is too old for modern godot web versions.
Apples implementation of WebGL technically exists on iOS 15.8 but as far as I know it has a lot of bugs and that’s most likely causing godot to simply fail.

If you absolutely need to support older devices with web builds, I recommend Godot 3 instead.

Yeah well, I’m keeping it for the moment, but to test the game on iOS, I had an iPhone 7 laying around with the latest 15.x. After starting the game I got the error so I digged into it to see what could cause it. Others with newer versions of iOS reported the game working so no big drama.

I will report the issue however so others can be made aware of this.

I don’t think this is something Godot can fix. It’s an Apple / iOS issue, and I highly doubt they will go back to fix it unfortunately.

But it’s always worth a try to report it for sure.

If it is working in Godot v3, why did it stop in v4? But I don’t care to much about it because like you said, it’s an Apple thing.

But I asked to put a remark in the documentation to let others know that there are problems on iOS 15 with Godot 4.7 so they are aware of it.

Because the entire rendering engine and backend was re-written from scratch. This is quite normal, when technology moves on, older devices won’t be able to keep up.