xai-org/x-algorithm · error · ConfigFailure
Team name '$teamName' does not match $teamNameRegex.
Error message
Team name '$teamName' does not match $teamNameRegex.
What it means
Team/owner names in BotMaker configs must match teamNameRegex, defined as ^[a-z][a-z0-9\-]*$ (lowercase, may contain digits and hyphens, must start with a lowercase letter). validateTeamName throws ConfigFailure for any team string violating this.
Source
Thrown at botmaker/src/scala/com/twitter/botmaker/runtime/config/ServiceConfigs.scala:113
def validateDataset(dataset: String): Unit = {
if (datasetRegex.findFirstIn(dataset).isEmpty) {
throw ConfigFailure(
s"Dataset '$dataset' does not match $datasetRegex."
)
}
}
def validateTypeName(typename: String): Unit = {
if (typeNameRegex.findFirstIn(typename).isEmpty) {
throw ConfigFailure(
s"TypeName '$typename' does not match $typeNameRegex."
)
}
}
def validateTeamName(teamName: String): Unit = {
if (teamNameRegex.findFirstIn(teamName).isEmpty) {
throw ConfigFailure(
s"Team name '$teamName' does not match $teamNameRegex."
)
}
}
def validateClassName(className: String): Unit = {
ClassCache.forName(className)
}
override def addConfig(
configName: String,
configType: Type,
description: String,
configValue: AnyRef
): Unit = synchronized {
unique(configValue, configName)
container.put(configName, (configType, description, configValue))
}View on GitHub (pinned to 24c60942c5)
Solutions
- Use the lowercase hyphenated team slug, e.g. "content-trust"
- Pull from a canonical team registry rather than free-typing the name
- Validate the team field at config authoring time (lint rule)
Example fix
// before
team("Content Integrity Team")
// after
team("content-integrity") Defensive patterns
Strategy: type-guard
Validate before calling
TEAM_RE = re.compile(r'^[a-z][a-z0-9\-]*$') def validTeam(t): return bool(TEAM_RE.match(t))
Type guard
def isValidTeam(name: str) -> bool:
return bool(re.match(r'^[a-z][a-z0-9\-]*$', name)) Prevention
- Use canonical lowercase team slugs from a registry
- Disallow free-text team fields
When it happens
Trigger: Setting the owning team to a value that is not lowercase-leading — e.g. "ContentTeam", "_infra", "trust & safety", or empty string.
Common situations: Using team display names or LDAP group names with spaces/uppercase instead of the lowercase slug; migrating configs where the team field was optional and left blank.
Related errors
- Event type '$eventType' does not match $eventTypeRegex.
- Field name '$fieldName' does not match $fieldNameRegex.
- Func name '$funcName' does not match $funcNameRegex.
- Endpoint '$endpoint' does not match $endpointRegex.
- Dataset '$dataset' does not match $datasetRegex.
AI-assisted analysis of xai-org/x-algorithm@24c60942c5 (2026-08-28).
Data as JSON: /api/errors/4e85e7badde2475a.
Report an issue: GitHub.