{"record":{"id":"edbe372841197483","repo":"tensorflow/models","slug":"the-following-classes-are-not-assigned-to-any-coll","errorCode":null,"errorMessage":"The following classes are not assigned to any collapsed category: {unmapped_classes}","messagePattern":"The following classes are not assigned to any collapsed category: (.+?)","errorType":"exception","errorClass":"ConfigurationError","httpStatus":null,"severity":"error","filePath":"official/projects/waste_identification_ml/model_inference_with_tracking/sam3_dinov3_tracking_pipeline/config_loader.py","lineNumber":308,"sourceCode":"          \"names.\"\n      )\n    mapping_dict[str(category_name)] = list(class_list)\n    for class_name in class_list:\n      if class_name not in class_names:\n        raise ConfigurationError(\n            f\"Class '{class_name}' in category '{category_name}' is not \"\n            \"present in the top-level 'classes' list.\"\n        )\n      if class_name in seen_classes:\n        raise ConfigurationError(\n            f\"Class '{class_name}' is assigned to both \"\n            f\"'{seen_classes[class_name]}' and '{category_name}'.\"\n        )\n      seen_classes[class_name] = category_name\n\n  unmapped_classes = [c for c in classes if c not in seen_classes]\n  if unmapped_classes:\n    raise ConfigurationError(\n        \"The following classes are not assigned to any collapsed category: \"\n        f\"{unmapped_classes}\"\n    )\n\n  return CollapsedCategoriesConfig(enable=True, mapping=mapping_dict)\n\n\n@dataclasses.dataclass(frozen=True, kw_only=True)\nclass PipelineConfig:\n  \"\"\"Root configuration object representing the entire pipeline state.\"\"\"\n\n  paths: PathsConfig\n  models: ModelsConfig\n  classes: list[str]\n  detection: DetectionConfig\n  tracking: TrackingConfig\n  visualization: VisualizationConfig\n  collapsed_categories: CollapsedCategoriesConfig","sourceCodeStart":290,"sourceCodeEnd":326,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/official/projects/waste_identification_ml/model_inference_with_tracking/sam3_dinov3_tracking_pipeline/config_loader.py#L290-L326","documentation":"Completeness validation at the end of build_collapsed_categories_config: after processing every category, some top-level classes remain unassigned (class_names minus seen_classes is non-empty). Because collapsing is enabled, every class must belong to exactly one category; otherwise get_category_for_class would hit its internal sentinel error at inference time. The message lists the leftover classes.","triggerScenarios":"Thrown at official/projects/waste_identification_ml/model_inference_with_tracking/sam3_dinov3_tracking_pipeline/config_loader.py:308 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add each unmapped class to exactly one category under collapsed_categories.mapping","Create a catch-all category (e.g. 'other') for classes with no natural grouping","Alternatively disable collapsing with enable: false if per-class outputs are acceptable"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e006f5f0d534913e49c1f1dae87364039fa607e2","analyzedAt":"2026-08-24T14:09:15.576Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}