quarkusio/quarkus · error

Assistant not available

Error message

Assistant not available

What it means

DevConsoleManager.invokeAssistant looks up a named assistant action and applies it to a globally registered assistant object. This error means an assistant action handler for the given name is registered, but no actual assistant implementation was ever set via the DEV_MANAGER_GLOBALS_ASSISTANT global, so the action cannot be dispatched.

Source

Thrown at core/devmode-spi/src/main/java/io/quarkus/dev/console/DevConsoleManager.java:167

    /**
     * Invokes a registered action
     *
     * @param name the name of the action
     * @param params the named parameters
     * @return the result of the invocation. An empty map is returned for action not returning any result.
     */
    @SuppressWarnings("unchecked")
    public static <T> T invoke(String name, Map<String, String> params) {
        var function = actions.get(name);
        if (function == null) {
            // Try assistant actions
            var bifunction = assistantActions.get(name);
            if (bifunction != null) {
                Object assistant = DevConsoleManager.getGlobal(DEV_MANAGER_GLOBALS_ASSISTANT);
                if (assistant != null) {
                    return (T) bifunction.apply(assistant, params);
                } else {
                    throw new RuntimeException("Assistant not available");
                }
            } else {
                throw new NoSuchElementException(name);
            }
        } else {
            return (T) function.apply(params);
        }
    }
}

View on GitHub (pinned to e1c734241f)

Solutions

  1. Add/configure the assistant provider extension so the assistant global is registered at startup
  2. Remove or guard calls to invokeAssistant when no assistant is present (check DevConsoleManager.getGlobal(DEV_MANAGER_GLOBALS_ASSISTANT) first)
  3. Set the DEV_MANAGER_GLOBALS_ASSISTANT global before invoking assistant actions
  4. Upgrade the assistant extension — older versions may fail to register the global

Example fix

// before
Object result = DevConsoleManager.invokeAssistant("explainError", params);
// after
if (DevConsoleManager.getGlobal(DevConsoleManager.DEV_MANAGER_GLOBALS_ASSISTANT) == null) {
    throw new ServiceUnavailableException("No assistant configured");
}
Object result = DevConsoleManager.invokeAssistant("explainError", params);
Defensive patterns

Strategy: validation

Validate before calling

if (DevConsoleManager.getGlobal(DevConsoleManager.DEV_MANAGER_GLOBALS_ASSISTANT) == null) {
    throw new ServiceUnavailableException("Assistant not configured in this app");
}

Try / catch

try {
    return DevConsoleManager.invokeAssistant(name, params);
} catch (RuntimeException e) {
    if ("Assistant not available".equals(e.getMessage())) {
        return fallbackResponse(name);
    }
    throw e;
}

Prevention

When it happens

Trigger: Calling DevConsoleManager.invokeAssistant(name, params) when assistantActions contains the name (registered at build/deployment time) but DevConsoleManager.setGlobal(DEV_MANAGER_GLOBALS_ASSISTANT, ...) was never called, e.g. no AI assistant extension is active in the running dev-mode application.

Common situations: Clicking an AI-assist feature in the Dev UI in a project that has no assistant extension (e.g. quarkus-langchain4j assistant not configured); invoking a dev-mode assistant endpoint programmatically without the assistant runtime installed.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/cf2ace31b4f07e9e. Report an issue: GitHub.