aeron-io/aeron · error · ConfigurationException

ClusterBackup.Context.sourceType=

Error message

ClusterBackup.Context.sourceType=${sourceType} is not valid. Must be one of: ${Arrays.toString(SourceType.values())}

What it means

ClusterBackup.Context supports a sourceType property (from system properties or explicit configuration) that must name a valid SourceType enum constant. ConfigurationException is thrown during conclude() when SourceType.valueOf fails, i.e. the value is not one of the allowed enum values, and the message lists valid values.

Solutions

  1. Set sourceType to exactly one of the values printed in the message from Arrays.toString(SourceType.values()).
  2. Check the SourceType enum in your Aeron version, as the allowed constants can change across releases.
  3. Remove the property to use the default source type if unsure.

Example fix

// before
-Dio.aeron.cluster.backup.sourceType=SNAPSHOT
// after
-Dio.aeron.cluster.backup.sourceType=LIVE
Defensive patterns

Strategy: validation

Validate before calling

String st = System.getProperty(ClusterBackup.Configuration.SOURCE_TYPE_PROP_NAME, "");
try { ClusterBackup.SourceType.valueOf(st); } catch (IllegalArgumentException e) { /* fix to a valid SourceType value */ }

Try / catch

try { ClusterBackup.launch(ctx); } catch (ConfigurationException e) { log.error("Bad sourceType config: {}", e.getMessage()); }

Prevention

When it happens

Trigger: Setting the ClusterBackup sourceType property to an unknown string such as 'SNAPSHOT' or 'seed' instead of a valid SourceType constant (e.g. SEED, LIVE, SNAPSHOT depending on version).

Common situations: Typo in a properties file or system property; renaming/upgrade where SourceType constants changed between Aeron versions.

Understand the failure class

Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.

Related errors


AI-assisted analysis of aeron-io/aeron@6d60124e15 (2026-09-12). Data as JSON: /api/errors/b96471286398c8d3. Report an issue: GitHub.

Appendix: source

Thrown at aeron-cluster/src/main/java/io/aeron/cluster/ClusterBackup.java:906

            }

            if (null == extendedTerminationHook)
            {
                extendedTerminationHook = cause -> {};
            }

            if (null == credentialsSupplier)
            {
                credentialsSupplier = new NullCredentialsSupplier();
            }

            try
            {
                SourceType.valueOf(sourceType);
            }
            catch (final IllegalArgumentException ex)
            {
                throw new ConfigurationException(
                    "ClusterBackup.Context.sourceType=" + sourceType + " is not valid. Must be one of: " +
                    Arrays.toString(SourceType.values()));
            }

            concludeMarkFile();
        }

        /**
         * Has the context had the {@link #conclude()} method called.
         *
         * @return true of the {@link #conclude()} method has been called.
         */
        public boolean isConcluded()
        {
            return isConcluded;
        }

        /**

View on GitHub (pinned to 6d60124e15)