appsmithorg/appsmith · error · AppsmithPluginException

PE-DSE-5003

PE-DSE-5003

Error message

Appsmith server has found an unexpected SSL option: %s. Please reach out to Appsmith customer support to resolve this.

What it means

Thrown by ArangoDB SSLUtils when the SSL auth mode switch hits default — i.e. the SSLDetails.AuthType is not DEFAULT/ENABLED/DISABLED. This is a defensive guard for an unmapped enum value. Code PE-DSE-5003 (PLUGIN_DATASOURCE_ARGUMENT_ERROR); the %s is the offending authType.

Source

Thrown at app/server/appsmith-plugins/arangoDBPlugin/src/main/java/com/external/utils/SSLUtils.java:50

        return false;
    }

    public static void setSSLParam(Builder builder, SSLDetails.AuthType authType) {
        switch (authType) {
            case DEFAULT:
                /* do nothing i.e. use default driver setting */

                break;
            case ENABLED:
                builder.useSsl(true);

                break;
            case DISABLED:
                builder.useSsl(false);

                break;
            default:
                throw new AppsmithPluginException(
                        AppsmithPluginError.PLUGIN_DATASOURCE_ARGUMENT_ERROR,
                        String.format(ArangoDBErrorMessages.UNEXPECTED_SSL_OPTION_ERROR_MSG, authType));
        }
    }

    public static void setSSLContext(Builder builder, DatasourceConfiguration datasourceConfiguration) {

        SSLDetails.CACertificateType caCertificateType =
                datasourceConfiguration.getConnection().getSsl().getCaCertificateType();

        switch (caCertificateType) {
            case NONE:
                /* do nothing */

                break;
            case FILE:
            case BASE64_STRING:
                try {

View on GitHub (pinned to 8cd9021c24)

Solutions

  1. Set the SSL auth mode to DEFAULT, ENABLED, or DISABLED in the datasource configuration.
  2. Update the ArangoDB plugin to a version whose AuthType handling matches the configured value.
  3. If you extended the AuthType enum, add a matching case to the switch in SSLUtils.

Example fix

// before: datasource ssl authType = SOME_NEW_MODE (unhandled)
// after
sslDetails.setAuthType(SSLDetails.AuthType.ENABLED);
Defensive patterns

Strategy: validation

Validate before calling

Set<SSLDetails.AuthType> allowed = EnumSet.of(
    SSLDetails.AuthType.DEFAULT,
    SSLDetails.AuthType.ENABLED,
    SSLDetails.AuthType.DISABLED);
if (!allowed.contains(authType)) {
    return errorResult("Unexpected SSL auth type: " + authType);
}

Type guard

boolean isKnownAuthType(SSLDetails.AuthType t) {
    return t == SSLDetails.AuthType.DEFAULT
        || t == SSLDetails.AuthType.ENABLED
        || t == SSLDetails.AuthType.DISABLED;
}

Try / catch

try {
    SSLUtils.setSSLAuthType(builder, datasourceConfiguration);
} catch (AppsmithPluginException e) {
    if (e.getMessage().contains("unexpected SSL option")) {
        // reset authType to DEFAULT and retry
    }
}

Prevention

When it happens

Trigger: Datasource SSL configuration carries an AuthType value the plugin's switch does not recognise (e.g. a newly added enum constant, or a corrupted/null-adjacent value).

Common situations: Plugin version older/newer than the form schema that produced the AuthType; custom/templated datasource config injecting an unexpected auth mode; enum extended without updating SSLUtils.

Understand the failure class

Related errors


AI-assisted analysis of appsmithorg/appsmith@8cd9021c24 (2026-08-12). Data as JSON: /api/errors/19a1ed721216f767. Report an issue: GitHub.