{"record":{"id":"1598f9ceeeb7acac","repo":"facebookresearch/detectron2","slug":"no-built-in-metadata-for-dataset","errorCode":null,"errorMessage":"No built-in metadata for dataset {}","messagePattern":"No built-in metadata for dataset (.+?)","errorType":"exception","errorClass":"KeyError","httpStatus":null,"severity":"error","filePath":"detectron2/data/datasets/builtin_meta.py","lineNumber":350,"sourceCode":"            \"keypoint_connection_rules\": KEYPOINT_CONNECTION_RULES,\n        }\n    elif dataset_name == \"cityscapes\":\n        # fmt: off\n        CITYSCAPES_THING_CLASSES = [\n            \"person\", \"rider\", \"car\", \"truck\",\n            \"bus\", \"train\", \"motorcycle\", \"bicycle\",\n        ]\n        CITYSCAPES_STUFF_CLASSES = [\n            \"road\", \"sidewalk\", \"building\", \"wall\", \"fence\", \"pole\", \"traffic light\",\n            \"traffic sign\", \"vegetation\", \"terrain\", \"sky\", \"person\", \"rider\", \"car\",\n            \"truck\", \"bus\", \"train\", \"motorcycle\", \"bicycle\",\n        ]\n        # fmt: on\n        return {\n            \"thing_classes\": CITYSCAPES_THING_CLASSES,\n            \"stuff_classes\": CITYSCAPES_STUFF_CLASSES,\n        }\n    raise KeyError(\"No built-in metadata for dataset {}\".format(dataset_name))\n","sourceCodeStart":332,"sourceCodeEnd":351,"githubUrl":"https://github.com/facebookresearch/detectron2/blob/a2f4a8771ab77e8411c26b27f24f9489a28a2453/detectron2/data/datasets/builtin_meta.py#L332-L351","documentation":"detectron2's builtin metadata registry only knows a fixed set of dataset names (COCO, cityscapes, etc.). _get_builtin_metadata raises KeyError when asked for metadata of a dataset name that has no builtin entry.","triggerScenarios":"Calling MetadataCatalog.get(name) (or a registration helper) for a name like 'mydataset_train' without registering custom metadata first; or a typo/varied name such as 'coco_2017_trains' or 'cityscapes_fine_*_val' variant not covered by builtin_meta.py keys.","commonSituations":"Training on a custom or renamed dataset without MetadataCatalog.set(); dataset name typos; splitting/renaming builtin datasets (e.g. 'coco_2017_val_100') that are expected to hit builtin entries but miss the key.","solutions":["Register your own metadata: MetadataCatalog.set('mydataset_train', thing_classes=[...]) before use","Check the exact dataset name spelling against the keys in detectron2/data/datasets/builtin_meta.py","For custom COCO-format data use register_coco_instances which sets metadata from the json's categories"],"exampleFix":"# before\nmeta = MetadataCatalog.get('mydata_train')\n# after\nfrom detectron2.data import MetadataCatalog\nMetadataCatalog.set('mydata_train', thing_classes=['cat', 'dog'])\nmeta = MetadataCatalog.get('mydata_train')","handlingStrategy":"validation","validationCode":"from detectron2.data import MetadataCatalog\nname = 'mydata_train'\nif not MetadataCatalog.contains(name):\n    MetadataCatalog.set(name, thing_classes=['cat', 'dog'])","typeGuard":null,"tryCatchPattern":"try:\n    meta = MetadataCatalog.get(name)\nexcept (KeyError, AssertionError):\n    MetadataCatalog.set(name, thing_classes=classes)\n    meta = MetadataCatalog.get(name)","preventionTips":["Always register metadata for custom dataset names before training","Use register_coco_instances/register_lvis_instances helpers which set metadata","Double-check dataset name strings against builtin_meta.py keys"],"tags":["detectron2","metadata","dataset-registration","keyerror"],"backgroundTag":"missing-dataset-metadata","analyzedSha":"a2f4a8771ab77e8411c26b27f24f9489a28a2453","analyzedAt":"2026-08-27T12:08:21.260Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}