Skip to content

[BUG]: Container startup warning "Using Node 20 for container startup" is noisy and obscures pipeline logs #5464

@aleqsss

Description

@aleqsss

What happened?

We're seeing the following warning during container job initialization:
##[warning]Using Node 20 for container startup.
This warning appears consistently in Microsoft-hosted agents as well as Managed DevOps Pools, and it is emitted even when everything is working as expected.

Why this is an issue

While technically harmless, this warning is problematic in practice:

  • It shows up in every container-based pipeline run
  • It adds visual noise to the Initialize job / Initialize containers section
  • It pushes actual, actionable warnings further down (or out of view)
  • It makes otherwise clean pipelines look “yellow” for no operational reason

From a user perspective, this looks like something is wrong or suboptimal, even though Node 20 is currently the intended default.

What we’ve observed

In the logs we consistently see:
Knob: UseNode20ToStartContainer = True Source: $(DistributedTask.Agent.UseNode20ToStartContainer)

Which suggests this behavior is controlled server-side via a pipeline feature flag.

The only way we’ve found to suppress the warning is to explicitly enable Node 24 startup:
variables: AZP_AGENT_USE_NODE24_TO_START_CONTAINER: "true"

However, this forces Node 24 usage, which we may not want yet. So at the moment, avoiding the warning requires opting into a newer runtime, which feels like an odd tradeoff.

Questions

We’d really appreciate clarification on a few points:

1. Why is this a warning at all?
Using Node 20 appears to be the default and expected behavior — so why is it surfaced as a warning rather than debug/info?

2. Is this related to an ongoing Node 24 rollout?
The behavior looks similar to previous Node transitions (fallback messaging, feature flags, etc.).
Is the warning intentionally there to highlight a non-final default during rollout?

3. Is there a supported way to suppress this warning without enabling Node 24?
For example:

  • A dedicated knob
  • A logging-level change
  • Or changing this message to info instead of warning

Suggestion

If Node 20 is the current stable default, it would be great if this message were either:

  • Downgraded to debug / info, or
  • Only emitted when an actual fallback occurs (e.g. 24 → 20 or 20 → 16)

That would significantly reduce noise in pipeline run views.

Finally, we’d like to understand whether this warning is something users are simply expected to wait out during a transition period.

If there is an ongoing rollout toward Node 24, and the current behavior is driven by server-side feature flags (for example, with UseNode20ToStartContainer being set today and UseNode24ToStartContainer expected to be enabled later), then it would be helpful to know that explicitly.

In that case, a warning about using Node 20 after Node 24 becomes the fully rolled-out default would make sense. However, emitting a warning today when Node 20 is still the active and intended default is confusing from a user perspective.

Any guidance on the intended rollout model, timeline, or recommended handling during this period would be greatly appreciated.

Versions

Azure DevOps version: 4.266.2

OS:

  • Windows Server 2025
  • Windows Server 2022
  • Ubuntu 24.04
  • Ubuntu 22.04

Environment type (Please select at least one enviroment where you face this issue)

  • Self-Hosted
  • Microsoft Hosted
  • VMSS Pool
  • Container

Azure DevOps Server type

dev.azure.com (formerly visualstudio.com)

Azure DevOps Server Version (if applicable)

No response

Operation system

Windows Server 2025, Windows Server 2022, Ubuntu 24.04, Ubuntu 22.04

Version controll system

Git

Relevant log output

Initialize job:
Knob: UseNode20ToStartContainer = True Source: $(DistributedTask.Agent.UseNode20ToStartContainer) 

Initialize containers:
##[warning]Using Node 20 for container startup.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions