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
- Install IDEasy on Windows on ARM.
- 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.
Actual behavior
Reproduce
Expected behavior
ide upgradeshould upgrade your IDEasy installation to the latest version.IDEasy 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.archwrong 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:
Solution idea:
IMHO the bug could be fixed here:
IDEasy/cli/src/main/java/com/devonfw/tools/ide/tool/mvn/MvnRepository.java
Lines 111 to 133 in ca409b9
When we figure out the latest version we actually download the
maven-metadata.xmlfile.IDEasy/cli/src/main/java/com/devonfw/tools/ide/tool/mvn/MvnRepository.java
Lines 279 to 291 in ca409b9
We could use a
CachedValuefor the resulting XMLDocumentand keep that in memory for a short delay (e.g. 1 Minute). Then we could get it (potentially again from the cache) from thegetMetadatamethod.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.