Skip to content

On Windows arm64 os.machine() returns unknown #62232

Description

@chris-addison

Version

24.14.0

Platform

Microsoft Windows NT 10.0.26200.0 arm64

Subsystem

No response

What steps will reproduce the bug?

You can easily reproduce from command line:

node -e "console.log(os.machine())"

The returned value is unknown

How often does it reproduce? Is there a required condition?

This happens always on the Windows arm64 version of Node 24.14.0

What is the expected behavior? Why is that the expected behavior?

The os.machine() should return arm64 like it does on Mac Apple Silicon

What do you see instead?

os.machine() returns unknown

Additional information

This is on the native arm64 version of node. os.arch() correctly returns arm64

Activity

  1. chris-addison commented on Mar 12, 2026

    @chris-addison
    Author

    I wrote a quick powershell script to query various windows apis. Here's the json output:

    {
      "node": {
        "platform": "win32",
        "arch": "arm64",
        "machine": "unknown",
        "release": "10.0.26200",
        "version": "Windows 11 Pro",
        "cpuModel": "Microsoft SQ3",
        "cpuCount": 8
      },
      "nativeApis": {
        "getSystemInfo": {
          "wProcessorArchitecture": 12,
          "processorArchitecture": "ARM64",
          "wReserved": 0,
          "dwPageSize": 4096,
          "lpMinimumApplicationAddress": "0x10000",
          "lpMaximumApplicationAddress": "0x7FFFFFFEFFFF",
          "dwActiveProcessorMask": "0xFF",
          "dwNumberOfProcessors": 8,
          "dwProcessorType": 0,
          "dwAllocationGranularity": 65536,
          "wProcessorLevel": 3403,
          "wProcessorRevision": 0
        },
        "getNativeSystemInfo": {
          "wProcessorArchitecture": 12,
          "processorArchitecture": "ARM64",
          "wReserved": 0,
          "dwPageSize": 4096,
          "dwNumberOfProcessors": 8,
          "dwProcessorType": 0,
          "dwAllocationGranularity": 65536,
          "wProcessorLevel": 3403,
          "wProcessorRevision": 0
        },
        "isWow64Process2": {
          "available": true,
          "processMachineCode": 0,
          "processMachine": "native",
          "nativeMachineCode": 43620,
          "nativeMachine": "ARM64"
        },
        "rtlGetVersion": {
          "ntstatus": 0,
          "major": 10,
          "minor": 0,
          "build": 26200,
          "platformId": 2,
          "servicePack": "",
          "servicePackMajor": 0,
          "servicePackMinor": 0
        },
        "getVersionExW": {
          "success": true,
          "lastError": 203,
          "major": 10,
          "minor": 0,
          "build": 26200,
          "platformId": 2,
          "servicePack": "",
          "servicePackMajor": 0,
          "servicePackMinor": 0
        },
        "environment": {
          "PROCESSOR_ARCHITECTURE": "ARM64",
          "PROCESSOR_IDENTIFIER": "ARMv8 (64-bit) Family 8 Model D4B Revision   0, Qualcomm Technologies Inc"
        }
      }
    }
  2. zakiscoding commented on Mar 12, 2026

    @zakiscoding

    Submitted a fix for this in PR #62235. The issue was that Windows ARM64 detection was falling back to 'unknown' in libuv. The fix uses Windows API GetSystemInfo() to properly detect ARM64 when os.machine() would otherwise return 'unknown'.

  3. added a commit that references this issue on Mar 12, 2026
    5e8dfc3
  4. Renegade334 commented on Mar 12, 2026

    @Renegade334
    Member

    This is addressed by #61829.

  5. linked a pull request that will close this issuedeps: update libuv to 1.52.1 #61829on Mar 12, 2026
  6. added
    libuvIssues and PRs related to the libuv dependency or the uv binding.
    on Mar 12, 2026
  7. chaiphetwongchaiyatham0-ohmk commented on Mar 21, 2026

    @chaiphetwongchaiyatham0-ohmk
  8. khalidsaidi commented on Mar 25, 2026

    @khalidsaidi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    libuvIssues and PRs related to the libuv dependency or the uv binding.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions