Windows 3.1.2-beta: Python-enabled OVMS starts without setupvars environment
- Dominant language
- TypeScript
- Stars
- 979
- Forks
- 132
- Avg merge
- 9h 23m
- Merged PRs (30d)
- 8
Description
## Summary
On Windows, AI Playground 3.1.2-beta starts Python-enabled OpenVINO Model Server (OVMS) without the environment required by the bundled `setupvars.ps1`/`setupvars.bat`. `ovms.exe` cannot resolve its embedded `python312.dll` and exits at the Windows loader level with `-1073741515` (`0xC0000135`, `STATUS_DLL_NOT_FOUND`) before producing OVMS output.
The installed OVMS is `2026.3.0` (`releaseTag` `8022ddae3`), which is already the latest upstream Model Server release, so updating OVMS is not a fix.
## Reproduction
1. Install AI Playground `3.1.2-beta` on Windows.
2. Choose an OpenVINO LLM and load it.
3. AI Playground reports that the OVMS process crashed during startup.
4. Run the same `ovms.exe` command without the setupvars environment: it exits with `-1073741515` and no output.
The package contains `ovms/python/python312.dll`. Applying the bundled setupvars environment lets the same executable initialize Python, listen on its REST port, and begin model loading.
```powershell
$ovmsDir = "\OpenVINO\ovms"
$env:OVMS_DIR = $ovmsDir
$env:PYTHONHOME = "$ovmsDir\python"
$env:PATH = "$ovmsDir;$env:PYTHONHOME;$env:PYTHONHOME\Scripts;$env:PATH"
& "$ovmsDir\ovms.exe" --version
```
## Expected behavior
Every OVMS subprocess started by AI Playground (LLM, embeddings, transcription, image generation) receives the same Windows environment as `setupvars.ps1`.
## Fix
Ensure the release includes the Windows branch in `WebUI/electron/subprocesses/openVINOBackendService.ts::buildOvmsEnv()` (currently present on `main`):
```ts
if (process.platform === 'win32') {
return {
...cleanEnv,
OVMS_DIR: this.ovmsDir,
PYTHONHOME: pythonDir,
PATH: [this.ovmsDir, pythonDir, scriptsDir, sanitizedInheritedPath]
.filter(Boolean)
.join(path.delimiter),
}
}
```
Please verify that the Windows packaging pipeline includes this code path and publish a release containing it. The installed `3.1.2-beta` build behaves as though this branch is absent or unused.
## Temporary workaround
Launch AI Playground in a process environment containing the three OVMS paths above. Do not set `PYTHONHOME` persistently for the whole user account, as it can break unrelated Python installations.
Contributor guide
Research direction
Start in WebUI/electron/subprocesses/openVINOBackendService.ts, especially buildOvmsEnv(), and compare the Windows release behavior with the branch currently on main. Verify the Windows packaging pipeline includes this path, then confirm every OVMS subprocess receives the setupvars environment and the packaged release starts OVMS successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, python, typescript
- Domain
- desktop, devops
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 70/100