microsoft / microsoft/foundry-dev-tools

Tracing unavailable on linux-arm64 — VSIX ships x86-64 @vscode/sqlite3 native binary

Open
#550 1 comment 0 reactions 1 assignee View on GitHub

@dooriya is already working on this.

Since Jul 21, 2026.

needs attention
Dominant language
JavaScript
Stars
2.1k
Forks
260
Avg merge
42m
Merged PRs (30d)
29

Description

Summary

On the linux-arm64 build (v1.6.2 and v1.6.3), the Tracing feature never appears.
isTracingSupported() fails because @vscode/sqlite3's native module in the VSIX is
compiled for x86-64, so it can't load on arm64. As a result the
ai-mlstudio.tracing.* commands (startCollector/stopCollector/open/showStatus) are
never registered and the collector never listens on 4317.

Environment
  • Host: Linux aarch64 (arm64), VS Code Server, Node v24.15.0 (ABI 137)
  • Extension: ms-windows-ai-studio.windows-ai-studio 1.6.3 (linux-arm64); also reproduced on 1.6.2
Evidence

Path: dist/node_modules/@vscode/sqlite3/build/Release/vscode-sqlite3.node

$ file vscode-sqlite3.node
ELF 64-bit LSB shared object, x86-64, ... not stripped ← wrong arch

$ readelf -h vscode-sqlite3.node | grep Machine
Machine: Advanced Micro Devices X86-64

Package metadata: @vscode/sqlite3 5.1.6-vscode, N-API (node-addon-api ^4.2.0, napi_versions [3,6]).

Root cause (suspected)

The platform-targeted VSIX is packaged on an x86-64 CI agent and bundles the host-arch
prebuilt native module instead of the arm64 one. Likely affects all non-x64 targets.

Workaround (confirmed)

Replace with the matching arm64 N-API build (ABI-independent, no compile):
download napi-v6-linux-glibc-arm64 sqlite3 5.1.6 and overwrite vscode-sqlite3.node.
Reload window → tracing commands register and work.

Suggested fix
  • Install the target-arch prebuilt before vsce package --target <arch>
    (e.g. npm_config_arch / prebuild-install --arch).
  • Add a CI check: after packaging each target, assert the bundled .node ELF Machine
    matches the target arch.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.