{"record":{"id":"9a95c4566c530de1","repo":"roboflow/supervision","slug":"all-or-none-of-the-name-fields-must-be-none-9a95c4","errorCode":null,"errorMessage":"All or none of the '{name}' fields must be None","messagePattern":"All or none of the '(.+?)' fields must be None","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/supervision/detection/core.py","lineNumber":2484,"sourceCode":"                    compact_list.append(m)\n                else:\n                    dense = np.asarray(m, dtype=bool)\n                    if dense.shape[1:] != image_shape:\n                        raise ValueError(\n                            f\"Dense mask shape {dense.shape[1:]} does not match \"\n                            f\"CompactMask image_shape {image_shape}.\"\n                        )\n                    compact_list.append(\n                        CompactMask.from_dense(dense, d.xyxy, image_shape)\n                    )\n            return CompactMask.merge(compact_list)\n\n        def stack_or_none(name: str) -> npt.NDArray[np.generic] | None:\n            values = [getattr(d, name) for d in detections_list]\n            if all(v is None for v in values):\n                return None\n            if any(v is None for v in values):\n                raise ValueError(f\"All or none of the '{name}' fields must be None\")\n            return cast(npt.NDArray[np.generic], np.hstack(values))\n\n        mask = cast(npt.NDArray[np.bool_] | CompactMask | None, stack_mask_or_none())\n        confidence = cast(npt.NDArray[np.floating] | None, stack_or_none(\"confidence\"))\n        class_id = cast(npt.NDArray[np.integer] | None, stack_or_none(\"class_id\"))\n        tracker_id = cast(npt.NDArray[np.integer] | None, stack_or_none(\"tracker_id\"))\n\n        data = merge_data([d.data for d in detections_list])\n\n        metadata_list = [detections.metadata for detections in detections_list]\n        metadata = merge_metadata(metadata_list)\n\n        return cls(\n            xyxy=xyxy,\n            mask=mask,\n            confidence=confidence,\n            class_id=class_id,\n            tracker_id=tracker_id,","sourceCodeStart":2466,"sourceCodeEnd":2502,"githubUrl":"https://github.com/roboflow/supervision/blob/7f254d9784d4c37e0f03cd89ddee164c8db099c0/src/supervision/detection/core.py#L2466-L2502","documentation":"Error \"All or none of the '{name}' fields must be None\" thrown in roboflow/supervision.","triggerScenarios":"Thrown at src/supervision/detection/core.py:2484 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make the named field consistently None or not None across all objects being merged; do not mix.","Populate the field on every object (or set it to None on every object) before merging."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7f254d9784d4c37e0f03cd89ddee164c8db099c0","analyzedAt":"2026-08-15T05:13:01.950Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}