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 — a

View on GitHub (pinned to fad3f12a14)

Solutions

  1. Check that the system architecture and OS are in the supported set (typically x64 Windows/Linux/macOS and ARM64 macOS).
  2. If online, ensure network connectivity so listSupportedBackends can fetch the latest manifest.
  3. Install a backend manually via 'Install from File' using a compatible archive, bypassing the auto-discovery path.
  4. 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

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


AI-assisted analysis of janhq/jan@fad3f12a14 (2026-08-12). Data as JSON: /api/errors/fff10cf9736b83e3. Report an issue: GitHub.