prestodb/presto · error · PrestoException

UNSUPPORTED_ANALYZER_TYPE

UNSUPPORTED_ANALYZER_TYPE

Error message

Unsupported analyzer type: 

What it means

Thrown by AnalyzerProviderManager.getAnalyzerProvider when the requested analyzer type is not registered in the manager's map. The manager only returns providers that were previously added via addAnalyzerProvider; an unknown string key means no analyzer can be constructed. It is a configuration/lookup failure, not a data error.

Source

Thrown at presto-main-base/src/main/java/com/facebook/presto/sql/analyzer/AnalyzerProviderManager.java:53

        addAnalyzerProvider(analyzerProvider);
    }

    public void addAnalyzerProvider(AnalyzerProvider analyzerProvider)
    {
        requireNonNull(analyzerProvider, "analyzerProvider is null");

        if (analyzerProviders.putIfAbsent(analyzerProvider.getType(), analyzerProvider) != null) {
            throw new IllegalArgumentException(format("Analyzer provider '%s' is already registered", analyzerProvider.getType()));
        }
    }

    public AnalyzerProvider getAnalyzerProvider(String analyzerType)
    {
        if (analyzerProviders.containsKey(analyzerType)) {
            return analyzerProviders.get(analyzerType);
        }

        throw new PrestoException(UNSUPPORTED_ANALYZER_TYPE, "Unsupported analyzer type: " + analyzerType);
    }
}

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Check the analyzerType string against registered providers (log or inspect analyzerProviders contents)
  2. Register the missing AnalyzerProvider via addAnalyzerProvider before lookup
  3. Ensure the plugin providing the analyzer is installed and loaded
  4. Fix typos or stale names in configuration files

Example fix

// before
AnalyzerProvider p = manager.getAnalyzerProvider("sqlAnalyser");
// after
AnalyzerProvider p = manager.getAnalyzerProvider("sqlAnalyzer");
Defensive patterns

Strategy: try-catch

Validate before calling

// caller-side check against configured providers
if (!configuredAnalyzerTypes.contains(analyzerType)) {
    throw new IllegalArgumentException("Unknown analyzer type: " + analyzerType);
}

Type guard

boolean isValidAnalyzerType(String t) { return knownAnalyzerTypes.contains(t); }

Try / catch

try {
    AnalyzerProvider p = manager.getAnalyzerProvider(type);
} catch (PrestoException e) {
    if (e.getErrorCode().getCode() == UNSUPPORTED_ANALYZER_TYPE.getCode()) {
        // fall back to default analyzer or surface config error
    } else throw e;
}

Prevention

When it happens

Trigger: Calling getAnalyzerProvider(analyzerType) with a string that was never registered via addAnalyzerProvider, e.g. a typo in the type name or a provider missing from the plugin.

Common situations: Typos in catalog/session analyzer config, a plugin jar not installed so its AnalyzerProvider never registers, or renaming an analyzer type between Presto versions while server config still references the old name.

Related errors


AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04). Data as JSON: /api/errors/e1070b4de2b72b93. Report an issue: GitHub.