Skip to content

ide update fails on windows@arm64 #1981

Description

@hohwille

Actual behavior

$ ide upgrade --mode=snapshot
No CVEs found for version 2026.05.001-20260527.032443-21 of tool ideasy.
Trying to download ide-cli-2026.05.001-20260527.032443-21-windows-arm64.tar.gz from https://central.sonatype.com/repository/maven-snapshots/com/devonfw/tools/IDEasy/ide-cli/2026.05.001-SNAPSHOT/ide-cli-2026.05.001-20260527.032443-21-windows-arm64.tar.gz
Logfile can be found at C:\Users\joerg\projects\_ide\logs\2026\05\27\_ide-ide-upgrade-10-33-14.log
An unexpected error occurred!
We are sorry for the inconvenience.
Please check the error below, resolve it and try again.
If the error is not on your end (network connectivity, lack of permissions, etc.) please file a bug:
https://github.com/devonfw/IDEasy/issues/new?template=bug_report.yml&title=IllegalStateException%3A+Failed+to+download+file+from+URL+https%3A%2F%2Fcentral.sonatype.com%2Frepository%2Fmaven-snapshots%2Fcom%2Fdevonfw%2Ftools%2FIDEasy%2Fide-cli%2F2026.05.001-SNAPSHOT%2Fide-cli-2026.05.001-20260527.032443-21-windows-arm64.tar.gz+to+C%3A%5CUsers%5Cjoerg%5Cprojects%5C_ide%5Ctmp%5CDownloads%5Cide-cli-2026.05.001-20260527.032443-21-windows-arm64.tar.gz
java.lang.IllegalStateException: Failed to download file from URL https://central.sonatype.com/repository/maven-snapshots/com/devonfw/tools/IDEasy/ide-cli/2026.05.001-SNAPSHOT/ide-cli-2026.05.001-20260527.032443-21-windows-arm64.tar.gz to C:\Users\joerg\projects\_ide\tmp\Downloads\ide-cli-2026.05.001-20260527.032443-21-windows-arm64.tar.gz
        at com.devonfw.tools.ide.io.FileAccessImpl.downloadViaHttp(FileAccessImpl.java:137)
        at com.devonfw.tools.ide.io.FileAccessImpl.download(FileAccessImpl.java:102)
        at com.devonfw.tools.ide.tool.repository.AbstractToolRepository.download(AbstractToolRepository.java:208)
        at com.devonfw.tools.ide.tool.mvn.MvnRepository.getDownloadedArtifact(MvnRepository.java:163)
        at com.devonfw.tools.ide.tool.mvn.MvnRepository.download(MvnRepository.java:261)
        at com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet.downloadTool(MvnBasedLocalToolCommandlet.java:54)
        at com.devonfw.tools.ide.tool.LocalToolCommandlet.performToolInstallation(LocalToolCommandlet.java:240)
        at com.devonfw.tools.ide.tool.LocalToolCommandlet.installTool(LocalToolCommandlet.java:206)
        at com.devonfw.tools.ide.tool.LocalToolCommandlet.doInstallStep(LocalToolCommandlet.java:96)
        at com.devonfw.tools.ide.tool.LocalToolCommandlet.doInstall(LocalToolCommandlet.java:86)
        at com.devonfw.tools.ide.tool.IdeasyCommandlet.doInstall(IdeasyCommandlet.java:147)
        at com.devonfw.tools.ide.tool.ToolCommandlet.install(ToolCommandlet.java:302)
        at com.devonfw.tools.ide.tool.ToolCommandlet.install(ToolCommandlet.java:287)
        at com.devonfw.tools.ide.commandlet.UpgradeCommandlet.doRun(UpgradeCommandlet.java:50)
        at com.devonfw.tools.ide.commandlet.Commandlet.run(Commandlet.java:232)
        at com.devonfw.tools.ide.context.AbstractIdeContext.applyAndRun(AbstractIdeContext.java:1315)
        at com.devonfw.tools.ide.context.AbstractIdeContext.run(AbstractIdeContext.java:1140)
        at com.devonfw.tools.ide.cli.Ideasy.runOrThrow(Ideasy.java:91)
        at com.devonfw.tools.ide.cli.Ideasy.run(Ideasy.java:55)
        at com.devonfw.tools.ide.cli.Ideasy.main(Ideasy.java:134)
        at java.base@25.0.2/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
Caused by: java.lang.IllegalStateException: Unexpected checked exception whilst communicating to https://central.sonatype.com/repository/maven-snapshots/com/devonfw/tools/IDEasy/ide-cli/2026.05.001-SNAPSHOT/ide-cli-2026.05.001-20260527.032443-21-windows-arm64.tar.gz
        at com.devonfw.tools.ide.network.NetworkStatusImpl.invokeNetworkTask(NetworkStatusImpl.java:141)
        at com.devonfw.tools.ide.io.FileAccessImpl.downloadWithHttpVersion(FileAccessImpl.java:148)
        at com.devonfw.tools.ide.io.FileAccessImpl.downloadViaHttp(FileAccessImpl.java:122)
        ... 20 more
Caused by: java.lang.IllegalStateException: Failed to stream response body from url: https://central.sonatype.com/repository/maven-snapshots/com/devonfw/tools/IDEasy/ide-cli/2026.05.001-SNAPSHOT/ide-cli-2026.05.001-20260527.032443-21-windows-arm64.tar.gz
        at com.devonfw.tools.ide.io.HttpDownloader.httpGet(HttpDownloader.java:89)
        at com.devonfw.tools.ide.io.FileAccessImpl.lambda$downloadWithHttpVersion$0(FileAccessImpl.java:150)
        at com.devonfw.tools.ide.network.NetworkStatusImpl.invokeNetworkTask(NetworkStatusImpl.java:133)
        ... 22 more
Caused by: java.lang.IllegalStateException: Download failed with status code 404
        at com.devonfw.tools.ide.io.HttpDownloader.httpGet(HttpDownloader.java:86)
        ... 24 more


Error: IDEasy failed with exit code 255

Reproduce

  1. Install IDEasy on Windows on ARM.
  2. ide upgrade

Expected behavior

ide upgrade should upgrade your IDEasy installation to the latest version.

IDEasy status

IDE_ROOT is set to ~/projects
IDE_HOME is set to ~/projects/project
Your version of IDEasy is 2026.05.001-05_22_03-SNAPSHOT.
You are using a SNAPSHOT version of IDEasy. For stability consider switching to a stable release via 'ide upgrade --mode=stable'
Your version of IDEasy is 2026.05.001-05_22_03-SNAPSHOT but version 2026.05.001-20260527.032443-21 is available. Please run the following command to upgrade to the latest version:
ide upgrade
Your operating system is windows(10.0)@arm64 [Windows 11@aarch64]
You are online.
Found bash executable at: C:/Program Files/Git/usr/bin/bash.***
Found git executable at: C:/Program Files/Git/**********/bin/git.***
Your settings are up-to-date.
Successfully completed ide (status)

Related/Dependent issues

#599

Comments/Hints

My assumption is that when we upgraded GraalVM and Java to 25 (see #1782 and #599 / 0def37c) we actually fixed a bug that the native image was resolving os.arch wrong detecting architecture for Windows on ARM as x64.
This bugfix not leads to the fact that Windows on ARM actually correctly tries to download the ARM release of IDEasy for Windows.
Problem: We do not have such release yet due to issue #599
This leads to 404 error and the upgrade to fail.

Workaround:

$ ide -Dos.arch=x64 upgrade --mode=snapshot

Solution idea:
IMHO the bug could be fixed here:

public MvnArtifactMetadata getMetadata(MvnArtifact artifact, String tool, String edition) {
OperatingSystem os = null;
SystemArchitecture arch = null;
String classifier = artifact.getClassifier();
if (!classifier.isEmpty()) {
String resolvedClassifier;
os = this.context.getSystemInfo().getOs();
resolvedClassifier = classifier.replace("${os}", os.toString());
if (resolvedClassifier.equals(classifier)) {
os = null;
} else {
classifier = resolvedClassifier;
}
arch = this.context.getSystemInfo().getArchitecture();
resolvedClassifier = classifier.replace("${arch}", arch.toString());
if (resolvedClassifier.equals(classifier)) {
arch = null;
}
artifact = artifact.withClassifier(resolvedClassifier);
}
UrlChecksums checksums = getChecksums(artifact);
return new MvnArtifactMetadata(artifact, tool, edition, checksums, os, arch);
}

When we figure out the latest version we actually download the maven-metadata.xml file.

private Document fetchXmlMetadata(String url) {
try {
return this.context.getNetworkStatus().invokeNetworkTask(() -> {
URL xmlUrl = new URL(url);
try (InputStream is = xmlUrl.openStream()) {
return documentBuilder.parse(is);
}
}, url);
} catch (Exception e) {
throw new CliException("Failed to determine the latest version from " + url, e);
}
}

We could use a CachedValue for the resulting XML Document and keep that in memory for a short delay (e.g. 1 Minute). Then we could get it (potentially again from the cache) from the getMetadata method.
This would allow us to check if the artefact we want to resolve actually exists.
If it does not exist and our architecture is ARM64, we could try a fallback to X64 instead if that is available.

Metadata

Metadata

Assignees

Labels

ARMARM CPU supportmvnrelated to apache maven build toolready-to-implementupgradeupgrade of IDEasy to latest versionwindowsspecific for Microsoft Windows OS

Type

Projects

Status
🏗 In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions