Get-PSUJobPipelineOutput returns no data for completed jobs (2026.3.x regression)
Environment: PowerShell Universal 2026.3.1 (possibly already 2026.3.0)
Summary: After upgrading to 2026.3.x, `Get-PSUJobPipelineOutput` returns nothing for completed jobs, even though the pipeline output was produced correctly and is counted (but not shown) in the Admin Console.
Repro script:
$InformationPreference = 'Continue'
$obj1 = [PSCustomObject]@{ Fruit = 'Apple'; Count = 3 }
Write-Information "Object 1: $($obj1 | ConvertTo-Json -Compress)"
$obj1
$obj2 = [PSCustomObject]@{ Name = 'Widget'; Color = 'Blue'; 'Order-State' = 'Success' }
Write-Information "Object 2: $($obj2 | ConvertTo-Json -Compress)"
$obj2
$arr = 1..2 | ForEach-Object { [PSCustomObject]@{ Index = $_; Value = "Item$_" } }
Write-Information "Object 3 (array): $($arr | ConvertTo-Json -Compress)"
$arr
Steps: Run via Invoke-PSUScript (or admin console), wait for completion, then check the job's "Pipeline Output" tab and call Get-PSUJobPipelineOutput -JobId <id> (tested locally and remotely with -ComputerName/-UseDefaultCredentials).
Expected: 4 objects (array unrolls to 2) with their properties, retrievable via Get-PSUJobPipelineOutput and inspectable in the Admin Console (as in 2026.1.6).
Actual:
- Admin Console "Pipeline Output" tab lists 4 rows but only shows the type name Deserialized.System.Management.Automation.PSCustomObject, no property values.
- Get-PSUJobPipelineOutput -JobId <id> returns nothing, locally and remotely.
- The job Log tab (explicit `Write-Information` JSON) confirms the correct values were actually emitted, ruling out a scripting error.
Impact: Any dashboard app using Get-PSUJobPipelineOutput to show job results in a table silently displays empty data despite successful job execution.
Thanks for bringing this to our attention! I've opened a ticket for it, and we'll have a fix in a release soon (sometime after 2026.3.2).
This is highly impactful if you have scripts that rely on calling other scripts! I'm using `Invoke-PSUScript -Wait` in several scripts and those are all broken right now.
Thanks for letting us know how impactful this is. We've moved the fix for this into the next release (2026.3.2).
@pos-basic-infrastructure @realslacker 2026.3.2 is released, once you update, could you share your experience with us?
Thank you!
Best regards,
Marc-Antoine Dubois
@Marc-Antoine Dubois
After update to 2026.3.2 it works fine again.
Get-PSUJobPipelineOutput get's the objects as expected.
Thanks for the quick fix release.
I'd like to reopen this as I just noticed that if a job ends with error (I guess failed, canceled, etc. too), the Pipeline Output is still empty. (version 2026.3.2)
The object stands in the log but not in the pipeline output.
At least in version 2026.1.6 which I use in production now it returned the pipeline output as well. I have many scripts that rely on that pipeline output regardless of job status..
Hello,
Thank you for reopening this, and for the details.
We reproduced it on 2026.3.2 and on the latest 2026.3.3.
When a script stops on a terminating error, such as throw, the job ends as Failed and its pipeline output is no longer saved.
The same script on 2026.1.6 keeps the objects that were written before the error.
Jobs that end as Error, from a non-terminating error such as Write-Error, still keep their pipeline output on 2026.3.x.
Cancelled jobs did not keep pipeline output in 2026.1.6 either, so that part has not changed.
We have passed this to our development team as a regression.
Could you confirm that the affected jobs show the Failed status in the admin console?
Until a fix is available, you can keep the output with a small change to the script.
Wrap the script body in try/catch, and call Write-Error in the catch block.
try {
# existing script body
}
catch {
Write-Error $_
}
In our tests on 2026.3.3, the job still ends as Failed, and Get-PSUJobPipelineOutput and Invoke-PSUScript -Wait return the objects again.
This works when the script's Error Action setting is Continue, which is the default.
You can also keep production on 2026.1.6 until the fix is released, as you are doing now.
We will update this thread as soon as a fixed version is available.
Best regards,
Patrick Ouimet
Hello @Patrick Ouimet,
Thank you for the update and confirming that this has been reproduced and reported as a regression.
I can confirm that all affected jobs are shown with the status "Failed" in the PSU admin console.
We also tested the workaround you initially suggested by replacing "throw" with "Write-Error". This works as described: the job ends with the status "Error" instead of "Failed", and the pipeline output remains available.
We appreciate the investigation and look forward to an update once the development team has identified the root cause and a fix is available.
Thank you for your support!