[GH-ISSUE #16618] issue: Kokoro Browser-based TTS doesn't work on macOS #17978

Closed
opened 2026-04-19 23:53:04 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @fdstevex on GitHub (Aug 14, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/16618

Check Existing Issues

  • I have searched the existing issues and discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Git Clone

Open WebUI Version

v0.6.22

Ollama Version (if applicable)

n/a

Operating System

macOS 26

Browser (if applicable)

Safari

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided every relevant configuration, setting, and environment variable used in my setup.
  • I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
  • Start with the initial platform/version/OS and dependencies used,
  • Specify exact install/launch/configure commands,
  • List URLs visited, user input (incl. example values/emails/passwords if needed),
  • Describe all options and toggles enabled or changed,
  • Include any files or environmental changes,
  • Identify the expected and actual result at each stage,
  • Ensure any reasonably skilled user can follow and hit the same issue.

Expected Behavior

Expected behaviour:

  • Open user settings
  • Click Audio
  • Select "Kokoro.js (Browser)" from the TTS Engine list.
  • Close settings
  • Click the button to speak a response
  • Hear the response

Actual Behavior

  • Click user settings
  • Click Audio, then select "Kokoro.js (Browser)" as the TTS engine.
  • A spinner will start and never complete.
  • The browser console will have the message below:

[Error] Unhandled Promise Rejection: TypeError: undefined is not a function (near '...x of w...')
(anonymous function) (2.f9LfW7pL.js:2824:729544)
(anonymous function) (2.f9LfW7pL.js:2824:729619)
(anonymous function) (2.f9LfW7pL.js:2824:729620)
(anonymous function) (2.f9LfW7pL.js:2824:729687)
Module Code (2.f9LfW7pL.js:2824:746127)

Steps to Reproduce

Using macOS 26, where Safari has WebGPU enabled, and open-webui v0.6.22.

I'm trying to use the browser-based TTS via Kokoro. Enabled this in TTS Settings by setting Text-to-Speech Engine to "Kokoro.js (Browser)".

To test:

  • Click your profile name at the bottom left of Open-WebUI
  • Click Audio, then select "Kokoro.js (Browser)" as the TTS engine.
  • A spinner will start and never complete.

The browser console will have this error:

[Error] Unhandled Promise Rejection: TypeError: undefined is not a function (near '...x of w...')
(anonymous function) (2.f9LfW7pL.js:2824:729544)
(anonymous function) (2.f9LfW7pL.js:2824:729619)
(anonymous function) (2.f9LfW7pL.js:2824:729620)
(anonymous function) (2.f9LfW7pL.js:2824:729687)
Module Code (2.f9LfW7pL.js:2824:746127)

Safari in macOS 26 enables WebGPU support by default, but this can also be tested in the latest non-beta macOS by enabling WebGPU in Feature Flags.

Logs & Screenshots

Image

[Error] Unhandled Promise Rejection: TypeError: undefined is not a function (near '...x of w...')
(anonymous function) (2.f9LfW7pL.js:2824:729544)
(anonymous function) (2.f9LfW7pL.js:2824:729619)
(anonymous function) (2.f9LfW7pL.js:2824:729620)
(anonymous function) (2.f9LfW7pL.js:2824:729687)
Module Code (2.f9LfW7pL.js:2824:746127)

Additional Information

Kokoro does work in Safari in other applications; here's a page that loads it and lets you run TTS in the browser where it can be tested:

https://voice-generator.pages.dev

Originally created by @fdstevex on GitHub (Aug 14, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/16618 ### Check Existing Issues - [x] I have searched the existing issues and discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Git Clone ### Open WebUI Version v0.6.22 ### Ollama Version (if applicable) n/a ### Operating System macOS 26 ### Browser (if applicable) Safari ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have **provided every relevant configuration, setting, and environment variable used in my setup.** - [x] I have clearly **listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup** (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc). - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. My steps: - Start with the initial platform/version/OS and dependencies used, - Specify exact install/launch/configure commands, - List URLs visited, user input (incl. example values/emails/passwords if needed), - Describe all options and toggles enabled or changed, - Include any files or environmental changes, - Identify the expected and actual result at each stage, - Ensure any reasonably skilled user can follow and hit the same issue. ### Expected Behavior Expected behaviour: - Open user settings - Click Audio - Select "Kokoro.js (Browser)" from the TTS Engine list. - Close settings - Click the button to speak a response - Hear the response ### Actual Behavior - Click user settings - Click Audio, then select "Kokoro.js (Browser)" as the TTS engine. - A spinner will start and never complete. - The browser console will have the message below: - [Error] Unhandled Promise Rejection: TypeError: undefined is not a function (near '...x of w...') (anonymous function) (2.f9LfW7pL.js:2824:729544) (anonymous function) (2.f9LfW7pL.js:2824:729619) (anonymous function) (2.f9LfW7pL.js:2824:729620) (anonymous function) (2.f9LfW7pL.js:2824:729687) Module Code (2.f9LfW7pL.js:2824:746127) ### Steps to Reproduce Using macOS 26, where Safari has WebGPU enabled, and open-webui v0.6.22. I'm trying to use the browser-based TTS via Kokoro. Enabled this in TTS Settings by setting Text-to-Speech Engine to "Kokoro.js (Browser)". To test: - Click your profile name at the bottom left of Open-WebUI - Click Audio, then select "Kokoro.js (Browser)" as the TTS engine. - A spinner will start and never complete. The browser console will have this error: [Error] Unhandled Promise Rejection: TypeError: undefined is not a function (near '...x of w...') (anonymous function) (2.f9LfW7pL.js:2824:729544) (anonymous function) (2.f9LfW7pL.js:2824:729619) (anonymous function) (2.f9LfW7pL.js:2824:729620) (anonymous function) (2.f9LfW7pL.js:2824:729687) Module Code (2.f9LfW7pL.js:2824:746127) Safari in macOS 26 enables WebGPU support by default, but this can also be tested in the latest non-beta macOS by enabling WebGPU in Feature Flags. ### Logs & Screenshots <img width="1732" height="1648" alt="Image" src="https://github.com/user-attachments/assets/07a5873e-dccf-4a54-80d8-86b07539cccc" /> [Error] Unhandled Promise Rejection: TypeError: undefined is not a function (near '...x of w...') (anonymous function) (2.f9LfW7pL.js:2824:729544) (anonymous function) (2.f9LfW7pL.js:2824:729619) (anonymous function) (2.f9LfW7pL.js:2824:729620) (anonymous function) (2.f9LfW7pL.js:2824:729687) Module Code (2.f9LfW7pL.js:2824:746127) ### Additional Information Kokoro does work in Safari in other applications; here's a page that loads it and lets you run TTS in the browser where it can be tested: https://voice-generator.pages.dev
GiteaMirror added the bug label 2026-04-19 23:53:04 -05:00
Author
Owner

@fdstevex commented on GitHub (Aug 14, 2025):

(I didn't include Docker log since this is all client side; let me know if you need it).

<!-- gh-comment-id:3188198473 --> @fdstevex commented on GitHub (Aug 14, 2025): (I didn't include Docker log since this is all client side; let me know if you need it).
Author
Owner

@tjbck commented on GitHub (Aug 14, 2025):

Unable to reproduce from our end (tested with m1 max), keep us updated!

<!-- gh-comment-id:3189741498 --> @tjbck commented on GitHub (Aug 14, 2025): Unable to reproduce from our end (tested with m1 max), keep us updated!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#17978