appsmithorg/appsmith · error · AppsmithPluginException

PE-DSE-5003

PE-DSE-5003

Error message

Appsmith S3 plugin service has failed to identify the S3 service provider type. Please reach out to Appsmith customer support to resolve this.

What it means

Thrown by S3ServiceProvider.fromString() when the supplied provider name does not match any known enum value (S3ErrorMessages.S3_SERVICE_PROVIDER_IDENTIFICATION_ERROR_MSG, code PE-DSE-5003). fromString iterates AMAZON, GOOGLE_CLOUD_STORAGE, UPCLOUD, WASABI, DIGITAL_OCEAN_SPACES, DREAM_OBJECTS, MINIO and 'other'; a name outside this set (case-insensitive) throws.

Source

Thrown at app/server/appsmith-plugins/amazons3Plugin/src/main/java/com/external/utils/DatasourceUtils.java:89

        DREAM_OBJECTS("dream-objects"),
        MINIO("minio"),
        GOOGLE_CLOUD_STORAGE("google-cloud-storage"),
        OTHER("other");

        private String name;

        S3ServiceProvider(String name) {
            this.name = name;
        }

        public static S3ServiceProvider fromString(String name) throws AppsmithPluginException {
            for (S3ServiceProvider s3ServiceProvider : S3ServiceProvider.values()) {
                if (s3ServiceProvider.name.equals(name.toLowerCase())) {
                    return s3ServiceProvider;
                }
            }

            throw new AppsmithPluginException(
                    AppsmithPluginError.PLUGIN_DATASOURCE_ARGUMENT_ERROR,
                    S3ErrorMessages.S3_SERVICE_PROVIDER_IDENTIFICATION_ERROR_MSG);
        }
    }

    /**
     * This method builds an `AmazonS3ClientBuilder` object from the datasourceConfiguration provided by user. The
     * `AmazonS3ClientBuilder` object can then be used to get a connection object to connect to the S3 service.
     *
     * @param datasourceConfiguration
     * @return AmazonS3ClientBuilder object
     * @throws AppsmithPluginException when (1) there is an error with parsing credentials (2) required
     *                                 datasourceConfiguration properties are missing (3) endpoint URL is found incorrect.
     */
    public static AmazonS3ClientBuilder getS3ClientBuilder(DatasourceConfiguration datasourceConfiguration)
            throws AppsmithPluginException {
        log.debug(Thread.currentThread().getName() + ": getS3ClientBuilder action called.");
        DBAuth authentication = (DBAuth) datasourceConfiguration.getAuthentication();

View on GitHub (pinned to 8cd9021c24)

Solutions

  1. Select a supported provider from the 'S3 Service Provider' dropdown (Amazon S3, Google Cloud Storage, Upcloud, Wasabi, DigitalOcean Spaces, Dream Objects, MinIO, or Other).
  2. If the datasource JSON was hand-edited, reset the provider property to a valid enum name and re-save.
  3. For a truly custom provider, choose 'Other' and supply the endpoint URL and region explicitly.

Example fix

// before: unknown provider
//   "S3 Service Provider": "backblaze"
// after: use 'other' with explicit endpoint
//   provider: "other", endpoint URL: "https://s3.us-west-004.backblazeb2.com"
Defensive patterns

Strategy: validation

Validate before calling

// Validate the provider is one of the known enum names (case-insensitive)
const ALLOWED = ['amazon-s3','google-cloud-storage','upcloud','wasabi','digital-ocean','dream-objects','minio','other'];
const p = (this.params.serviceProvider || '').toLowerCase();
if (!ALLOWED.includes(p)) throw new Error('Unknown S3 service provider: ' + p);

Type guard

function isKnownProvider(v) {
  const ALLOWED = ['amazon-s3','google-cloud-storage','upcloud','wasabi','digital-ocean','dream-objects','minio','other'];
  return typeof v === 'string' && ALLOWED.includes(v.toLowerCase());
}

Prevention

When it happens

Trigger: The 'S3 Service Provider' dropdown value passed to fromString is not one of the recognized provider identifiers — e.g. a custom/typo value injected into the datasource properties, or a new provider name added to the UI that the enum does not yet know.

Common situations: Manually editing datasource JSON and entering an unknown provider string; a UI/plugin version mismatch where the frontend offers a provider the backend enum lacks; localization changing the stored value.

Related errors


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