Skip to content

Start-ThreadJob missing by default in Docker images (-modules) even on 2026.1.3; ThreadJob module not present in hosted PS modules; Install-PSResource fails at runtime #5593

@RubenT91

Description

@RubenT91

Description of Issue

In PowerShell Universal Docker images using the -modules tags, Start-ThreadJob is not available by default inside the PSU script runtime. The ThreadJob / Microsoft.PowerShell.ThreadJob module is not present under the hosted PowerShell modules directory (/home/Universal/Hosts/.../Modules). 13553*

This reproduces in:

ironmansoftware/universal:5.5.2-modules

ironmansoftware/universal:2026.1.3-modules (note: ironmansoftware/universal:2026.1.3 tag was not found)

Additionally, attempting to install the module at runtime using Install-PSResource -Scope CurrentUser failed in the PSU runtime (2026.1.3-modules lab repro) with Index was out of range..., and Start-ThreadJob remains unavailable.

Impact: scripts cannot use ThreadJob-based parallelism in PSU Docker runtime by default, and Start-Job is generally not viable in hosted scenarios (PSU guidance recommends ThreadJob).

Steps to Reproduce (minimal)

  1. Start PSU with a clean /root volume (fresh container state) using one of:

    • ironmansoftware/universal:5.5.2-modules
    • ironmansoftware/universal:2026.1.3-modules
  2. Run a PSU script (via Admin UI or via API /api/v1/script execution) containing:

$PSVersionTable
$PSHOME
$env:PSModulePath

Get-Command Start-ThreadJob -ErrorAction SilentlyContinue | Format-List *
Get-Module -ListAvailable Microsoft.PowerShell.ThreadJob,ThreadJob | Select Name,Version,Path
  1. Observe:
  • Get-Command Start-ThreadJob returns no results (cmdlet missing).
  • Get-Module -ListAvailable ...ThreadJob... returns no results (module not discoverable by default).
  1. Optional filesystem validation inside the container:
  • Confirm there is no ThreadJob module under the hosted modules directory:

    • /home/Universal/Hosts/.../Modules/*ThreadJob* (not present)
  1. Attempt runtime workaround (inside PSU script runtime):
Install-PSResource -Name ThreadJob -Scope CurrentUser -Confirm:$false
Get-Command Start-ThreadJob -ErrorAction SilentlyContinue

Expected:

  • Install should succeed and Start-ThreadJob becomes available.

Actual (lab repro):

  • Install fails and Start-ThreadJob remains missing.

Error observed:

Install-PSResource: Index was out of range...

Version

  • Reproduced on Docker image: ironmansoftware/universal:5.5.2-modules

    • PSU UI reported: 5.5.2 build 14742231506 (docker)
  • Reproduced on Docker image: ironmansoftware/universal:2026.1.3-modules

    • Note: ironmansoftware/universal:2026.1.3 tag not found

Version

5.5.2 / 2026.1.3

Severity

High

Hosting Method

Docker Container

Operating System

Linux

Database

SQLite

Licensed

Yes

Features

Git Sync enabled (two-way) with external git client (private remote)

Scripts executed via PSU job runtime (API /api/v1/script used in lab repro)

Additional Environment data

PowerShell Version observed (one environment): 7.5.1

PSHOME observed in runtime (one environment): /home/Universal

Hosted PowerShell modules path checked: /home/Universal/Hosts/.../Modules (ThreadJob not present)

Screenshots/Animations

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    requires triageIssue has not yet been verified by the development team.v5Version 5 issue.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions