#67023·aspnetcore

Known Build Error: libuv assertion "new_time >= loop->time" on Windows AzDO agents (exit code 57005)

Author: lewingCreated Jun 4, 2026Updated Sep 17, 2026
Labelstest-failurearea-infrastructureKnown Build Error

Build Information

Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1449805 Build error leg or test failing: Build / Test: Windows Server x64 Pull request: https://github.com/dotnet/aspnetcore/pull/67010

Error Message

json
{
  "ErrorMessage": "Assertion failed: new_time >= loop->time",
  "ErrorPattern": "",
  "BuildRetry": true,
  "ExcludeConsoleLog": true
}

What this is

libuv's monotonic-clock invariant in src/win/core.c:327 (uv_update_time) is violated when the underlying Windows interrupt-time counter steps backwards. This is a virtualization artifact on Azure hosted Windows agents (likely Hyper-V live migration / NTP step on a freshly provisioned VM). It manifests as a native abort with exit code 57005 (0xDEAD) and can fire in any Node.js process the agent runs — UseNode@1, PublishBuildArtifacts@1, PublishTestResults@2, etc. — i.e., it is not tied to any specific repo step.

Both bundled node versions on the agent are affected:

  • C:\vss-agent\4.273.0\externals\node24\bin\node.exe — assertion from src\win\core.c, line 327
  • C:\vss-agent\4.273.0\externals\node20_1\bin\node.exe — assertion from c:\ws\deps\\\uv\src\win\core.c, line 327

This is distinct from the npm-ci 0xDEAD crash family tracked at nodejs/node#62991 (a separate TCP/buffer corruption hypothesized to be fixed in Node 24.16). Pinning the pipeline Node version (e.g., Install Node 24.14.1 in .azure/pipelines/jobs/default-build.yml) does not help, because:

  1. The agent-bundled externals\node24/node20_1 are not controlled by the pipeline.
  2. The UseNode@1 task itself runs in the agent-bundled Node and crashes before the pinned version is installed.

Within the single affected job in build 1449805, the assertion fires six times across a 90-second window in successive Node-based AzDO tasks (Install Node, three PublishBuildArtifacts uploads, two PublishTestResults). All produce the same Exit code 57005 returned from process line.

Why BuildRetry: true

The assertion is a transient artifact of the host VM's clock — different agent draws will hit different VMs that may not exhibit the issue.

Why ExcludeConsoleLog: true

The signature appears in AzDO timeline task logs only, not in Helix work-item consoles. Scanning Helix logs for this string is wasted work.

Affected builds (seed; will append as bot reports new hits)

Build Repo PR Step
1449805 dotnet/aspnetcore #67010 Test: Windows Server x64 (Install Node 24.14.1 + 5 follow-on Node-based tasks)

Related

  • nodejs/node#62991 — separate 0xDEAD crash family (npm ci TCP/buffer), tracked independently
  • microsoft/azure-pipelines-tasks#22195, #22201 — task-side mirror bugs for #62991
  • libuv has discussed relaxing this assertion upstream since it can fire on legitimately-monotonic-violating virtualization

Known issue validation

Build: :mag_right: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1449805 Error message validated: [Assertion failed: new_time >= loop->time] Result validation: :white_check_mark: Known issue matched with the provided build. Validation performed at: 6/4/2026 7:41:37 PM UTC

Report

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
0 0 0