xai-org/x-algorithm · error · IllegalArgumentException
SimClusters model version not supported ${modelVersion.name}
Error message
SimClusters model version not supported ${modelVersion.name} What it means
LocaleEntitySimClustersEmbeddingsJob only supports the Model20m145kUpdated SimClusters model version when selecting the simClustersInterestedIn source. Any other modelVersion falls into the catch-all case and this IllegalArgumentException is thrown at job-graph construction time.
Source
Thrown at simclusters/simclusters_v2/scalding/embedding/LocaleEntitySimClustersEmbeddingsJob.scala:94
uniqueID: UniqueID
): Execution[Unit] = {
val jobConfig = EntityEmbeddingsJobConfig(args, isAdhoc = true)
val numReducers = args.getOrElse("m", "2000").toInt
val userEntityMatrix: TypedPipe[(UserId, (Entity, Double))] =
getUserEntityMatrix(
jobConfig,
DataSources.entityRealGraphAggregationDataSetSource(dateRange.embiggen(Days(7))),
Some(ExternalDataSources.uttEntitiesSource())
).forceToDisk
val simClustersSource = jobConfig.modelVersion match {
case ModelVersion.Model20m145kUpdated =>
InterestedInSources.simClustersInterestedInUpdatedSource(dateRange, timeZone)
case modelVersion =>
throw new IllegalArgumentException(
s"SimClusters model version not supported ${modelVersion.name}")
}
val entityPerLanguage = userEntityMatrix.join(ExternalDataSources.userSource).map {
case (userId, ((entity, score), (_, language))) =>
((entity, language), (userId, score))
}
val normalizedUserEntityMatrix =
getNormalizedTransposeInputMatrix(entityPerLanguage, numReducers = Some(numReducers))
val embeddings = computeEmbeddings[(Entity, String)](
simClustersSource,
normalizedUserEntityMatrix,
scoreExtractors,
ModelVersion.Model20m145kUpdated,
toSimClustersEmbeddingId(jobConfig.modelVersion),
numReducers = Some(numReducers * 2)View on GitHub (pinned to 24c60942c5)
Solutions
- Set the model version arg to Model20m145kUpdated for this job
- If a new version must be supported, add a case in the match calling the corresponding InterestedInSources source
- Centralize supported-version checks in job config parsing so failures happen early with a clearer message
Example fix
// before
case modelVersion =>
throw new IllegalArgumentException(
s"SimClusters model version not supported ${modelVersion.name}")
// after
// add the new supported branch
case ModelVersion.Model20m145kDec11 =>
InterestedInSources.simClustersInterestedInDec11Source(dateRange, timeZone) Defensive patterns
Strategy: validation
Validate before calling
require(jobConfig.modelVersion == ModelVersion.Model20m145kUpdated,
s"Unsupported model version ${jobConfig.modelVersion.name} for LocaleEntitySimClustersEmbeddingsJob") Type guard
def isSupportedModel(v: ModelVersion): Boolean = v == ModelVersion.Model20m145kUpdated
Prevention
- Assert the model version against the job's supported set in a pre-flight check
- Keep a per-job allowlist of model versions in config rather than passing raw versions
When it happens
Trigger: Running the job (or its scheduled execution) with jobConfig.modelVersion set to a version other than ModelVersion.Model20m145kUpdated, e.g. Model20m145kDec11 for locale embeddings.
Common situations: Upgrading the job to a new model version without adding a source branch; copying job args from another job that uses a different model; defaulting to the newest model version in shared config.
Related errors
- (ScoreType, Entity) ($scoreType, ${entity.toString}) not sup
- Argument [--entity-type] must be provided. Supported options
- (ScoreType, Entity) ($scoreType, ${entity.toString}) not sup
- Never heard of $c before! Is this a new model version?
- Job config specified EntityType.SemanticCore, but non-semant
AI-assisted analysis of xai-org/x-algorithm@24c60942c5 (2026-08-28).
Data as JSON: /api/errors/dde80053a7d87a8a.
Report an issue: GitHub.