{"record":{"id":"de1db26a4da2ee43","repo":"tensorflow/models","slug":"crop-variants-must-be-a-non-empty-list-allowed-va","errorCode":null,"errorMessage":"crop_variants must be a non-empty list. Allowed values: {list(ALLOWED_CROP_VARIANTS)}.","messagePattern":"crop_variants must be a non-empty list\\. Allowed values: (.+?)\\.","errorType":"exception","errorClass":"ConfigError","httpStatus":null,"severity":"error","filePath":"official/projects/waste_identification_ml/data_generation/auto_labeler_pipeline/config_loader.py","lineNumber":421,"sourceCode":"\n\ndef _validate_crop_variants(raw_variants: Any) -> tuple[str, ...]:\n  \"\"\"Validates configured crop variants against the allowed set.\n\n  Args:\n      raw_variants: The value read from YAML; expected to be a non-empty\n        sequence of allowed variant names.\n\n  Returns:\n      The variants reordered to match ``ALLOWED_CROP_VARIANTS``, so on-disk\n      layout is deterministic regardless of YAML ordering.\n\n  Raises:\n      ConfigError: If the sequence is empty, not a list, or contains an\n          unknown or duplicate variant name.\n  \"\"\"\n  if not isinstance(raw_variants, (list, tuple)) or not raw_variants:\n    raise ConfigError(\n        \"crop_variants must be a non-empty list. \"\n        f\"Allowed values: {list(ALLOWED_CROP_VARIANTS)}.\"\n    )\n  seen = set()\n  for variant in raw_variants:\n    if variant not in ALLOWED_CROP_VARIANTS:\n      raise ConfigError(\n          f\"Unknown crop variant {variant!r}. \"\n          f\"Allowed values: {list(ALLOWED_CROP_VARIANTS)}.\"\n      )\n    if variant in seen:\n      raise ConfigError(f\"Duplicate crop variant {variant!r}.\")\n    seen.add(variant)\n  return tuple(variant for variant in ALLOWED_CROP_VARIANTS if variant in seen)\n\n\ndef _validate_rotation_fill_color(\n    raw_color: Any,","sourceCodeStart":403,"sourceCodeEnd":439,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/official/projects/waste_identification_ml/data_generation/auto_labeler_pipeline/config_loader.py#L403-L439","documentation":"Error \"crop_variants must be a non-empty list. Allowed values: {list(ALLOWED_CROP_VARIANTS)}.\" thrown in tensorflow/models.","triggerScenarios":"Thrown at official/projects/waste_identification_ml/data_generation/auto_labeler_pipeline/config_loader.py:421 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e006f5f0d534913e49c1f1dae87364039fa607e2","analyzedAt":"2026-08-24T14:09:15.576Z","schemaVersion":2},"datasetVersion":"2026-08-24T17:17:21.512Z"}