[GH-ISSUE #23695] issue: Voice recording interrupted by screen lock on iPhone PWA (Wake Lock API missing in VoiceRecording component) #58713

Closed
opened 2026-05-05 23:45:00 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @fischerkev7 on GitHub (Apr 14, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23695

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!).
  • I am using the latest version of Open WebUI.

Installation Method

Other

Open WebUI Version

V08.10

Ollama Version (if applicable)

No response

Operating System

Azure Container Web App Linux

Browser (if applicable)

No response

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

When using the voice recording button (microphone icon) in the chat input on an iPhone PWA, the screen should remain on for the duration of the recording session — just as it does in the Call Overlay, which already implements the Wake Lock API.

Actual Behavior

After a few seconds of inactivity (no screen touch), the iPhone screen turns black and the device locks. This immediately interrupts the audio recording. The recorded audio up to that point is lost and no transcription is sent.

This affects the VoiceRecording component (microphone button in the chat input). The CallOverlay component already has Wake Lock implemented and is not affected.

Steps to Reproduce

  1. Install Open WebUI as a PWA on an iPhone (iOS 16.4+)
  2. Open a chat
  3. Tap the microphone button to start a voice recording
  4. Put the phone down without touching the screen
  5. Wait for the auto-lock timeout (typically 30–60 seconds depending on device settings)
  6. Result: Screen locks, recording is interrupted and lost

Logs & Screenshots

No JavaScript errors are thrown. The issue is a missing browser API call — navigator.wakeLock.request('screen') is never called in VoiceRecording.svelte.

For reference: CallOverlay.svelte already contains a working Wake Lock implementation (onMount, lines 626–652).

Related discussions:

#3031 — "when doing voice-to-text the screen will lock at the most inopportune time"
#18627 — iOS mic cutoff issue where a user confirmed Wake Lock prevents the problem

Additional Information

Root cause: VoiceRecording.svelte does not use the Wake Lock API, while CallOverlay.svelte already does.

Proposed fix: Add Wake Lock to VoiceRecording.svelte — request it when mediaRecorder.onstart fires, release it in stopRecording(), confirmRecording(), and onDestroy(). Re-request on visibilitychange (same pattern as CallOverlay).

Compatibility: Wake Lock API is supported since iOS 16.4 (Safari). The fix includes 'wakeLock' in navigator guards for graceful fallback on older devices.

  • Server OS: Linux (Azure App Service)
  • Deployment: Docker / Azure Web App
  • Client OS: iOS 16.4+ (iPhone, PWA installed to home screen)

I am willing to submit a pull request

Originally created by @fischerkev7 on GitHub (Apr 14, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/23695 ### Check Existing Issues - [x] I have searched for any existing and/or related issues. - [x] I have searched for any existing and/or related discussions. - [x] I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!). - [x] I am using the latest version of Open WebUI. ### Installation Method Other ### Open WebUI Version V08.10 ### Ollama Version (if applicable) _No response_ ### Operating System Azure Container Web App Linux ### Browser (if applicable) _No response_ ### 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 When using the voice recording button (microphone icon) in the chat input on an iPhone PWA, the screen should remain on for the duration of the recording session — just as it does in the Call Overlay, which already implements the Wake Lock API. ### Actual Behavior After a few seconds of inactivity (no screen touch), the iPhone screen turns black and the device locks. This immediately interrupts the audio recording. The recorded audio up to that point is lost and no transcription is sent. This affects the VoiceRecording component (microphone button in the chat input). The CallOverlay component already has Wake Lock implemented and is not affected. ### Steps to Reproduce 1. Install Open WebUI as a PWA on an iPhone (iOS 16.4+) 2. Open a chat 3. Tap the microphone button to start a voice recording 4. Put the phone down without touching the screen 5. Wait for the auto-lock timeout (typically 30–60 seconds depending on device settings) 6. Result: Screen locks, recording is interrupted and lost ### Logs & Screenshots No JavaScript errors are thrown. The issue is a missing browser API call — navigator.wakeLock.request('screen') is never called in VoiceRecording.svelte. For reference: CallOverlay.svelte already contains a working Wake Lock implementation (onMount, lines 626–652). Related discussions: #3031 — "when doing voice-to-text the screen will lock at the most inopportune time" #18627 — iOS mic cutoff issue where a user confirmed Wake Lock prevents the problem ### Additional Information Root cause: VoiceRecording.svelte does not use the [Wake Lock API](https://developer.mozilla.org/en-US/docs/Web/API/WakeLock), while CallOverlay.svelte already does. Proposed fix: Add Wake Lock to VoiceRecording.svelte — request it when mediaRecorder.onstart fires, release it in stopRecording(), confirmRecording(), and onDestroy(). Re-request on visibilitychange (same pattern as CallOverlay). Compatibility: Wake Lock API is supported since iOS 16.4 (Safari). The fix includes 'wakeLock' in navigator guards for graceful fallback on older devices. - **Server OS:** Linux (Azure App Service) - **Deployment:** Docker / Azure Web App - **Client OS:** iOS 16.4+ (iPhone, PWA installed to home screen) I am willing to submit a pull request
GiteaMirror added the bug label 2026-05-05 23:45:00 -05:00
Author
Owner

@Classic298 commented on GitHub (Apr 14, 2026):

Wake lock added in dev. Duplicate. Search for existing issues before opening one!!!

<!-- gh-comment-id:4241723829 --> @Classic298 commented on GitHub (Apr 14, 2026): Wake lock added in dev. Duplicate. Search for existing issues before opening one!!!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#58713