janhq/jan · critical · Error
No supported backend binaries found for this system. Backend
Error message
No supported backend binaries found for this system. Backend selection and auto-update will be unavailable.
What it means
Thrown during backend configuration when listSupportedBackends returns an empty array for the current system. This means the platform/architecture combination has no available pre-built backend binary. The error message explicitly notes that backend selection and auto-update will be unavailable.
Source
Thrown at extensions/llamacpp-extension/src/index.ts:1431
async configureBackends(): Promise<void> {
if (this.isConfiguringBackends) {
logger.info(
'configureBackends already in progress, skipping duplicate call'
)
return
}
this.isConfiguringBackends = true
try {
let version_backends: { version: string; backend: string }[] = []
try {
version_backends = await listSupportedBackends(
this.config.check_for_updates !== false
)
if (version_backends.length === 0) {
throw new Error(
'No supported backend binaries found for this system. Backend selection and auto-update will be unavailable.'
)
} else {
version_backends.sort((a, b) => b.version.localeCompare(a.version))
}
} catch (error) {
throw new Error(
`Failed to fetch supported backends: ${
error instanceof Error ? error.message : error
}`
)
}
// Get stored backend preference
const storedBackendType = await this.getStoredBackendType()
let bestAvailableBackendString = ''
// "Recommended" is computed against upstream releases only — aView on GitHub (pinned to fad3f12a14)
Solutions
- Check that the system architecture and OS are in the supported set (typically x64 Windows/Linux/macOS and ARM64 macOS).
- If online, ensure network connectivity so listSupportedBackends can fetch the latest manifest.
- Install a backend manually via 'Install from File' using a compatible archive, bypassing the auto-discovery path.
- On an unsupported arch, build llama.cpp from source and use the resulting archive with 'Install from File'.
Defensive patterns
Strategy: fallback
Validate before calling
const backends = await listSupportedBackends(true)
if (backends.length === 0) {
// Fall back to manual install or a CPU-only backend
console.warn('No auto-discovered backends; use Install from File')
} Prevention
- On uncommon architectures, pre-install a compatible backend via 'Install from File'.
- Keep a local cache of known-good backend archives for offline or unsupported-arch environments.
- Check the supported-architecture list in the release notes before expecting auto-discovery to work.
When it happens
Trigger: listSupportedBackends(fetchUpdates) returned [] — the system's OS/arch/vendor combination matched no published release artifact. This can happen on an unsupported architecture (e.g. ARM Linux without a matching build), when the release manifest is empty, or when the fetch was forced offline and the local cache has no entries.
Common situations: Running on an uncommon architecture (e.g. Linux ARM64, RISC-V) with no matching pre-built llamacpp backend; running offline with no cached backend manifest; new platform not yet covered by the release pipeline.
Related errors
- Failed to fetch supported backends: ${error instanceof Error
- Invalid backend string: ${targetBackendString} supplied to u
- Invalid backend string format: "${targetBackendString}". Exp
- Router failed its health check on backend ${targetBackendStr
- Invalid path or file ${path}
AI-assisted analysis of janhq/jan@fad3f12a14 (2026-08-12).
Data as JSON: /api/errors/fff10cf9736b83e3.
Report an issue: GitHub.