LykosAI/StabilityMatrix · error · ValidationException

Prompt extensions not installed

Error message

Prompt extensions not installed

What it means

RunGeneration validates, for the first batch (BatchIndex == 0), that all required prompt extensions (e.g. custom nodes needed by the built node graph) are installed on the connected backend via CheckPromptExtensionsInstalled. If any are missing it throws ValidationException('Prompt extensions not installed') to stop the run early rather than failing server-side.

Solutions

  1. Install the required prompt extensions (ComfyUI custom nodes) the workflow depends on, then retry.
  2. Use the app's extension manager (CheckpointManager/extension installer) to add the missing node packs reported by the validation.
  3. Pick a generation template/workflow that only uses built-in nodes if you cannot install extensions.
  4. Run CheckPromptExtensionsInstalled on the built nodes before invoking generation and surface a friendly install prompt.

Example fix

// before
await RunGeneration(args); // ValidationException at runtime
// after
if (!await CheckPromptExtensionsInstalled(args.Nodes))
{
    await Dialogs.ShowExtensionsInstallDialog();
    return;
}
await RunGeneration(args);
Defensive patterns

Strategy: validation

Validate before calling

if (!await CheckPromptExtensionsInstalled(args.Nodes))
{
    await ShowMissingExtensionsDialog();
    return;
}

Try / catch

try { await RunGeneration(args); }
catch (ValidationException ex) { Dialogs.ShowDialog("Missing extensions", ex.Message); }

Prevention

When it happens

Trigger: Submitting a generation whose node graph references extension nodes (custom nodes) that are not installed on the connected ComfyUI instance — e.g. missing extensions for ControlNet, IPAdapter, or other third-party nodes the template requires.

Common situations: Fresh ComfyUI install without custom nodes; switching to a different backend checkpoint/server that lacks the extensions; shared workflows/templates authored with extensions the local install never added; extension update/checkpoint mismatch after a version change.

Understand the failure class

Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.

Related errors


AI-assisted analysis of LykosAI/StabilityMatrix@af93d6ef57 (2026-09-12). Data as JSON: /api/errors/2bc1dcbb8053358e. Report an issue: GitHub.

Appendix: source

Thrown at StabilityMatrix.Avalonia/ViewModels/Base/InferenceGenerationViewModelBase.cs:297

        var client = args.Client;
        var nodes = args.Nodes;

        // Checks
        if (args.Parameters is null)
            throw new InvalidOperationException("Parameters is null");
        if (args.Project is null)
            throw new InvalidOperationException("Project is null");
        if (args.OutputNodeNames.Count == 0)
            throw new InvalidOperationException("OutputNodeNames is empty");
        if (client.OutputImagesDir is null)
            throw new InvalidOperationException("OutputImagesDir is null");

        // Only check extensions for first batch index
        if (args.BatchIndex == 0)
        {
            if (!await CheckPromptExtensionsInstalled(args.Nodes))
            {
                throw new ValidationException("Prompt extensions not installed");
            }
        }

        // Upload input images
        await UploadInputImages(client);

        // Upload required files
        await UploadPromptFiles(args.FilesToTransfer, client);

        // Connect preview image handler
        client.PreviewImageReceived += OnPreviewImageReceived;

        // Register to interrupt if user cancels
        var promptInterrupt = cancellationToken.Register(() =>
        {
            Logger.Info("Cancelling prompt");
            client
                .InterruptPromptAsync(new CancellationTokenSource(5000).Token)

View on GitHub (pinned to af93d6ef57)