alibaba/nacos · warning · NacosApiException

PARAMETER_VALIDATE_ERROR

PARAMETER_VALIDATE_ERROR

Error message

AI resource import plugin is disabled: {}

What it means

Thrown by AiResourceImportPluginManager.resolveBuilder() when the requested plugin IS loaded but the PluginStateCheckerHolder reports it as disabled. This is the per-plugin enable/disable gate that runs after the existence check and before the resource-type capability check. Mapped to PARAMETER_VALIDATE_ERROR with an INVALID_PARAM top-level code, signaling the request is valid in shape but the targeted plugin is administratively off.

Source

Thrown at ai/src/main/java/com/alibaba/nacos/ai/importer/manager/AiResourceImportPluginManager.java:135

    /**
     * Resolve an enabled managed builder.
     *
     * @param pluginName managed plugin name and source id
     * @param resourceType expected resource type
     * @return resolved builder
     * @throws NacosException if routing fails
     */
    public AiResourceImportServiceBuilder resolveBuilder(String pluginName, String resourceType)
        throws NacosException {
        requireModuleEnabled();
        AiResourceImportServiceBuilder result = getLoadedPlugins().get(pluginName);
        if (result == null) {
            throw new NacosApiException(NacosException.NOT_FOUND,
                ErrorCode.RESOURCE_NOT_FOUND,
                "AI resource import plugin not found: " + pluginName);
        }
        if (!isPluginEnabled(pluginName)) {
            throw new NacosApiException(NacosException.INVALID_PARAM,
                ErrorCode.PARAMETER_VALIDATE_ERROR,
                "AI resource import plugin is disabled: " + pluginName);
        }
        if (!supportsResourceType(result, resourceType)) {
            throw new NacosApiException(NacosException.INVALID_PARAM,
                ErrorCode.PARAMETER_VALIDATE_ERROR,
                "AI resource import plugin does not support resource type: " + resourceType);
        }
        return result;
    }
    
    private Map<String, AiResourceImportServiceBuilder> getLoadedPlugins() {
        Map<String, AiResourceImportServiceBuilder> result = builders;
        return result == null ? Collections.emptyMap() : result;
    }
    
    private void requireModuleEnabled() throws NacosException {
        if (!propertiesSupplier.get().isEnabled()) {

View on GitHub (pinned to 9b989acdf1)

Solutions

  1. Re-enable the plugin through the plugin state checker configuration/admin API for PluginType.AI_RESOURCE_IMPORT.
  2. If the plugin should stay disabled, pick a different enabled sourceId from the list sources endpoint.
  3. Confirm with the cluster operator that the disable was intentional and the plugin is healthy before re-enabling.
Defensive patterns

Strategy: try-catch

Try / catch

try {
    pluginManager.resolveBuilder(sourceId, resourceType);
} catch (NacosApiException e) {
    if (ErrorCode.PARAMETER_VALIDATE_ERROR.getCode() == e.getDetailErrCode()
        && e.getErrMsg().contains("is disabled")) {
        // surface to operator / fall back to another enabled source
        notifyOpsPluginDisabled(sourceId);
    }
    throw e;
}

Prevention

When it happens

Trigger: resolveBuilder finds the builder in getLoadedPlugins(), then isPluginEnabled(pluginName) returns false via PluginStateCheckerHolder.isPluginEnabled for PluginType.AI_RESOURCE_IMPORT. Any import search/validate/execute against that pluginName then fails.

Common situations: An operator disabled the plugin through the plugin state checker configuration (e.g. maintenance, security review); a plugin failed its health/state check and was auto-disabled; environment-specific config turns specific importers off.

Related errors


AI-assisted analysis of alibaba/nacos@9b989acdf1 (2026-08-14). Data as JSON: /api/errors/8ed34f1395b0bb1a. Report an issue: GitHub.