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
- Set sourceType to exactly one of the values printed in the message from Arrays.toString(SourceType.values()).
- Check the SourceType enum in your Aeron version, as the allowed constants can change across releases.
- 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
- Validate sourceType property against SourceType.values() at startup
- Recheck enum constants after Aeron version upgrades
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
- Aeron client instance must set…
- Aeron client must use a RethrowingErrorHandler
- segment file length not a power of 2
- segment file length not in valid range
- Unable to derive…
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)