[GH-ISSUE #168] Bug: Open Terminal fails silently when Python is not installed - no UI feedback and no auto-install #106

Closed
opened 2026-10-18 14:06:10 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @Heliopause0916 on GitHub (May 1, 2026).
Original GitHub issue: https://github.com/open-webui/desktop/issues/168

Description

When clicking the "Open Terminal" button without a previously installed Python environment, the feature fails silently with no user-facing error message or prompt to install Python. The only indication of failure is in the log file.

Steps to Reproduce

  1. Fresh install of Open WebUI Desktop (v0.0.15)
  2. Do NOT start a Local Server first
  3. Go to Settings → Open Terminal and click "Start" (or enable it)
  4. Observe: Nothing happens, the UI shows no feedback

Expected Behavior

One of the following should happen:

  1. Option A: Show a prompt asking the user to install Python first, with an "Install" button
  2. Option B: Automatically trigger Python installation before starting Open Terminal
  3. Option C: Display a clear error message in the UI explaining that Python is required

Actual Behavior

  • No UI feedback
  • No error dialog
  • Only visible in log file:
    [error] Failed to start Open Terminal: Error: Python is not installed
    

Environment

  • OS: Windows 11
  • Open WebUI Desktop Version: 0.0.15
  • Python directory: C:\Users\<user>\AppData\Roaming\open-webui\python\ exists but is empty

Log Evidence

[2026-05-01 23:03:24.728] [error] Failed to start Open Terminal: Error: Python is not installed
    at startOpenTerminal (app.asar\out\main\index.js:884:35)

Root Cause Analysis

Looking at the source code (src/main/utils/open-terminal.ts):

export const startOpenTerminal = async (port: number | null = null) => {
  if (!isPythonInstalled()) throw new Error('Python is not installed')
  if (!isPackageInstalled('open-terminal')) {
    await installPackage('open-terminal')
  }
  // ...
}

The function throws an error if Python is not installed, but does not trigger the installation flow. The Python installation is only triggered when users start a "Local Server", not when they use Open Terminal.

Workaround

Users must first:

  1. Go to Settings → Local Server
  2. Click "Start" to trigger Python installation
  3. Wait for Python to download and install
  4. Then Open Terminal will work

Or manually download Python standalone and extract to:

%APPDATA%\open-webui\python\

Suggested Fix

The startOpenTerminal function should either:

  1. Trigger Python installation automatically if not installed
  2. Or show a user-friendly dialog prompting the user to install Python first

Similar logic exists for the Local Server flow - it would be helpful to have consistency across features that require Python.


  • src/main/utils/open-terminal.ts - Open Terminal startup logic
  • src/main/utils/index.ts - Python installation functions (installPython, isPythonInstalled)
  • src/main/index.ts - IPC handler for install:python
Originally created by @Heliopause0916 on GitHub (May 1, 2026). Original GitHub issue: https://github.com/open-webui/desktop/issues/168 ### Description When clicking the "Open Terminal" button without a previously installed Python environment, the feature fails silently with no user-facing error message or prompt to install Python. The only indication of failure is in the log file. ### Steps to Reproduce 1. Fresh install of Open WebUI Desktop (v0.0.15) 2. Do NOT start a Local Server first 3. Go to Settings → Open Terminal and click "Start" (or enable it) 4. Observe: Nothing happens, the UI shows no feedback ### Expected Behavior One of the following should happen: 1. **Option A**: Show a prompt asking the user to install Python first, with an "Install" button 2. **Option B**: Automatically trigger Python installation before starting Open Terminal 3. **Option C**: Display a clear error message in the UI explaining that Python is required ### Actual Behavior - No UI feedback - No error dialog - Only visible in log file: ``` [error] Failed to start Open Terminal: Error: Python is not installed ``` ### Environment - **OS**: Windows 11 - **Open WebUI Desktop Version**: 0.0.15 - **Python directory**: `C:\Users\<user>\AppData\Roaming\open-webui\python\` exists but is empty ### Log Evidence ``` [2026-05-01 23:03:24.728] [error] Failed to start Open Terminal: Error: Python is not installed at startOpenTerminal (app.asar\out\main\index.js:884:35) ``` ### Root Cause Analysis Looking at the source code (`src/main/utils/open-terminal.ts`): ```typescript export const startOpenTerminal = async (port: number | null = null) => { if (!isPythonInstalled()) throw new Error('Python is not installed') if (!isPackageInstalled('open-terminal')) { await installPackage('open-terminal') } // ... } ``` The function throws an error if Python is not installed, but does **not** trigger the installation flow. The Python installation is only triggered when users start a "Local Server", not when they use Open Terminal. ### Workaround Users must first: 1. Go to Settings → Local Server 2. Click "Start" to trigger Python installation 3. Wait for Python to download and install 4. Then Open Terminal will work Or manually download Python standalone and extract to: ``` %APPDATA%\open-webui\python\ ``` ### Suggested Fix The `startOpenTerminal` function should either: 1. Trigger Python installation automatically if not installed 2. Or show a user-friendly dialog prompting the user to install Python first Similar logic exists for the Local Server flow - it would be helpful to have consistency across features that require Python. --- ### Related Code References - `src/main/utils/open-terminal.ts` - Open Terminal startup logic - `src/main/utils/index.ts` - Python installation functions (`installPython`, `isPythonInstalled`) - `src/main/index.ts` - IPC handler for `install:python`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
open-webui/desktop#106
No description provided.