Steps to reproduce:
- Create a new project (any template) and add the com.unity.pipeline package (0.6.0-exp.1)
- Start a Player build that keeps the main thread busy for a while (for example a WebGL build)
- While the build is running, send any pipeline bridge command that needs the main thread (for example: unity command [project] clear_console)
- Observe the build result
Actual result:
The bridge request times out and logs "Failed to handle /api/exec request: Main thread operation timed out after 20000ms". That timeout is then surfaced as "Error building Player: Failed to handle /api/exec request: Main thread operation timed out after 20000ms", and the entire Player build fails (observed: a WebGL build failed after 16m 30s with 2 errors). Rebuilding with no bridge command sent during the build succeeds in a few seconds.
Expected result:
A bridge /api/exec request that cannot be serviced while a build is running should be queued, deferred, or rejected in isolation. It must never be reported as a build error or cause an in-progress Player build to fail.
Reproducible with versions: com.unity.pipeline 0.6.0-exp.1 (6000.7.0a6)
Tested on (OS): Windows 11
Notes:
- Non-deterministic: it requires a bridge command to land on the main thread while the build is in progress.
- The console also logs "Pipeline: No RuntimePipelineConfig asset found (Project Settings > Pipeline > Runtime). Pipeline will be disabled in Player builds.", yet the editor-side pipeline server still intercepted the request during the build and failed it.
- Evidence timeline (local time): build 2:01:49 PM -> 2:18:19 PM; /api/exec timeout logged 2:16:36 PM; build reported Failed 2:18:19 PM with 2 errors; a clean retry 2:21:32 PM -> 2:21:36 PM Succeeded in 4 seconds.