tensorflow/models · error · ConfigurationError
Class ' ' is assigned to both ' ' and ' '.
Error message
Class '{class_name}' is assigned to both '{seen_classes[class_name]}' and '{category_name}'. What it means
Duplicate-assignment validation in build_collapsed_categories_config: the same class name appears under two different categories (tracked via the seen_classes dict). A class can only collapse into one category; duplicates would make get_category_for_class ambiguous, so the loader reports both conflicting category names.
Solutions
- Keep the class in only one category and delete it from the other
- Split into two distinct class names if the classes are genuinely different concepts
- Reorganize the categories so they are disjoint sets over the classes list
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at official/projects/waste_identification_ml/model_inference_with_tracking/sam3_dinov3_tracking_pipeline/config_loader.py:300 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tensorflow/models@e006f5f0d5 (2026-08-24).
Data as JSON: /api/errors/66d4aaab3151622d.
Report an issue: GitHub.
Appendix: source
Thrown at official/projects/waste_identification_ml/model_inference_with_tracking/sam3_dinov3_tracking_pipeline/config_loader.py:300
for category_name, class_list in raw_mapping.items():
if not isinstance(class_list, Sequence) or isinstance(class_list, str):
raise ConfigurationError(
f"Category '{category_name}' must map to a list of class names."
)
if not class_list:
raise ConfigurationError(
f"Category '{category_name}' must map to a non-empty list of class "
"names."
)
mapping_dict[str(category_name)] = list(class_list)
for class_name in class_list:
if class_name not in class_names:
raise ConfigurationError(
f"Class '{class_name}' in category '{category_name}' is not "
"present in the top-level 'classes' list."
)
if class_name in seen_classes:
raise ConfigurationError(
f"Class '{class_name}' is assigned to both "
f"'{seen_classes[class_name]}' and '{category_name}'."
)
seen_classes[class_name] = category_name
unmapped_classes = [c for c in classes if c not in seen_classes]
if unmapped_classes:
raise ConfigurationError(
"The following classes are not assigned to any collapsed category: "
f"{unmapped_classes}"
)
return CollapsedCategoriesConfig(enable=True, mapping=mapping_dict)
@dataclasses.dataclass(frozen=True, kw_only=True)
class PipelineConfig:
"""Root configuration object representing the entire pipeline state."""View on GitHub (pinned to e006f5f0d5)