oracle/graal · critical · GraalError
No backend available for host architecture \"%s\"
Error message
No backend available for host architecture \"%s\"
What it means
HotSpotGraalRuntime's constructor asks the selected CompilerConfigurationFactory's BackendMap for a HotSpotBackendFactory matching the host architecture; if none is registered (factory == null), GraalError 'No backend available for host architecture "arch"' aborts Graal initialization — the compiler cannot run without a code generator for the machine it is on.
Source
Thrown at compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/HotSpotGraalRuntime.java:173
}
options = selectedOptions;
config = selectedConfig;
outputDirectory = new DiagnosticsOutputDirectory(options);
compilationProblemsPerAction = new EnumMap<>(ExceptionAction.class);
snippetCounterGroups = GraalOptions.SnippetCounters.getValue(options) ? new ArrayList<>() : null;
CompilerConfiguration compilerConfiguration = compilerConfigurationFactory.createCompilerConfiguration();
compilerConfigurationName = compilerConfigurationFactory.getName();
this.instrumentation = compilerConfigurationFactory.createInstrumentation(options);
CompilerConfigurationFactory.BackendMap backendMap = compilerConfigurationFactory.createBackendMap();
JVMCIBackend hostJvmciBackend = jvmciRuntime.getHostJVMCIBackend();
Architecture hostArchitecture = hostJvmciBackend.getTarget().arch;
try (InitTimer t = timer("create backend:", hostArchitecture)) {
HotSpotBackendFactory factory = backendMap.getBackendFactory(hostArchitecture);
if (factory == null) {
throw new GraalError("No backend available for host architecture \"%s\"", hostArchitecture);
}
if (replayCompilationSupport != null) {
factory = replayCompilationSupport.decorateBackendFactory(factory, jvmciRuntime);
}
hostBackend = registerBackend(factory.createBackend(this, compilerConfiguration, jvmciRuntime, null));
}
for (JVMCIBackend jvmciBackend : jvmciRuntime.getJVMCIBackends().values()) {
if (jvmciBackend == hostJvmciBackend) {
continue;
}
Architecture gpuArchitecture = jvmciBackend.getTarget().arch;
HotSpotBackendFactory factory = backendMap.getBackendFactory(gpuArchitecture);
if (factory == null) {
throw new GraalError("No backend available for specified GPU architecture \"%s\"", gpuArchitecture);
}
try (InitTimer t = timer("create backend:", gpuArchitecture)) {View on GitHub (pinned to a66e9ccd1d)
Solutions
- Use a Graal build that includes a backend for your host architecture (or the stock JDK-embedded Graal, which always matches the machine)
- Switch -Dgraal.CompilerConfiguration to one whose BackendMap covers your architecture (check the factory's createBackendMap implementation)
- If this is your own configuration, register a HotSpotBackendFactory mapping for the host Architecture in the BackendMap
Defensive patterns
Strategy: validation
Validate before calling
// verify a backend factory exists for the host arch before enabling JVMCI (conceptually):
Architecture host = jvmciRuntime.getHostJVMCIBackend().getTarget().arch;
if (backendMap.getBackendFactory(host) == null) { /* refuse startup with a clear message */ } Prevention
- Use Graal builds that ship backends for your target architectures
- Cross-check -Dgraal.CompilerConfiguration against the host arch
- Prefer the JDK's embedded Graal for non-x64/aarch64 hosts
When it happens
Trigger: Running the JVMCI/Graal compiler on a host architecture for which the compiler configuration has no backend factory — e.g. a configuration that only maps AMD64/AArch64 while running on riscv64/ppc64le/s390x, or a build that omitted the arch-specific backend jar.
Common situations: Running a community/enterprise build without the backend for an exotic architecture; mis-selected CompilerConfiguration that scopes backends (e.g. a custom configuration omitting the host arch); broken installs missing backend modules.
Related errors
- No backend available for specified GPU architecture \"%s\"
- No options specified for MethodFilter:
- Compiler configuration '%s' not found. Available configurati
- No %s providers found
- %s garbage collector is not supported by Graal
AI-assisted analysis of oracle/graal@a66e9ccd1d (2026-08-14).
Data as JSON: /api/errors/23a02b249ebf81cd.
Report an issue: GitHub.