{"record":{"id":"ff275c25e52b7a83","repo":"keras-team/keras","slug":"unknown-fill-mode-fill-mode-expected-of-one-ff275c","errorCode":null,"errorMessage":"Unknown `fill_mode` {fill_mode}. Expected of one {self._SUPPORTED_FILL_MODE}.","messagePattern":"Unknown `fill_mode` (.+?)\\. Expected of one (.+?)\\.","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"keras/src/layers/preprocessing/image_preprocessing/random_translation.py","lineNumber":129,"sourceCode":"        fill_mode=\"reflect\",\n        interpolation=\"bilinear\",\n        seed=None,\n        fill_value=0.0,\n        data_format=None,\n        **kwargs,\n    ):\n        super().__init__(data_format=data_format, **kwargs)\n        self.height_factor = height_factor\n        self.height_lower, self.height_upper = self._set_factor(\n            height_factor, \"height_factor\"\n        )\n        self.width_factor = width_factor\n        self.width_lower, self.width_upper = self._set_factor(\n            width_factor, \"width_factor\"\n        )\n\n        if fill_mode not in self._SUPPORTED_FILL_MODE:\n            raise NotImplementedError(\n                f\"Unknown `fill_mode` {fill_mode}. Expected of one \"\n                f\"{self._SUPPORTED_FILL_MODE}.\"\n            )\n        if interpolation not in self._SUPPORTED_INTERPOLATION:\n            raise NotImplementedError(\n                f\"Unknown `interpolation` {interpolation}. Expected of one \"\n                f\"{self._SUPPORTED_INTERPOLATION}.\"\n            )\n\n        self.fill_mode = fill_mode\n        self.fill_value = fill_value\n        self.interpolation = interpolation\n        self.seed = seed\n        self.generator = SeedGenerator(seed)\n        self.supports_jit = False\n\n    def _set_factor(self, factor, factor_name):\n        if isinstance(factor, (tuple, list)):","sourceCodeStart":111,"sourceCodeEnd":147,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/layers/preprocessing/image_preprocessing/random_translation.py#L111-L147","documentation":"Raised by RandomTranslation's constructor when `fill_mode` is not one of the supported modes (\"constant\", \"reflect\", \"wrap\", \"nearest\"). The mode controls how pixels emptied by the translation are filled.","triggerScenarios":"Calling RandomTranslation(height_factor=0.1, fill_mode=\"mirror\") or fill_mode=\"replicate\" — strings accepted by other frameworks but not Keras.","commonSituations":"Porting augmentation configs from torchvision (\"reflect\", \"replicate\") or OpenCV (cv2.BORDER_*); misspelling a supported mode.","solutions":["Use one of \"constant\", \"reflect\", \"wrap\", \"nearest\"","If porting from torchvision's \"replicate\", use \"nearest\" or \"wrap\" as the closest Keras equivalent","For a solid fill color, use fill_mode=\"constant\" with fill_value"],"exampleFix":"// before\nlayer = RandomTranslation(0.1, 0.1, fill_mode=\"replicate\")\n// after\nlayer = RandomTranslation(0.1, 0.1, fill_mode=\"nearest\")","handlingStrategy":"validation","validationCode":"SUPPORTED_FILL = {\"constant\", \"reflect\", \"wrap\", \"nearest\"}\nassert fill_mode in SUPPORTED_FILL, f\"fill_mode must be one of {SUPPORTED_FILL}\"","typeGuard":"def is_valid_fill_mode(m):\n    return m in {\"constant\", \"reflect\", \"wrap\", \"nearest\"}","tryCatchPattern":"try:\n    layer = RandomTranslation(0.1, 0.1, fill_mode=fill_mode)\nexcept NotImplementedError as e:\n    raise ValueError(f\"Unsupported fill_mode {fill_mode!r}; valid: constant, reflect, wrap, nearest\") from e","preventionTips":["Check layer docstrings for supported enum values when porting between torchvision/OpenCV and Keras","Centralize fill-mode mapping in one config-translation module"],"tags":["keras","preprocessing","fill-mode","augmentation"],"backgroundTag":"unsupported-enum-value","analyzedSha":"7a34a03db60bf60042242d6a556fc3be119046a5","analyzedAt":"2026-08-25T21:25:25.994Z","schemaVersion":2},"datasetVersion":"2026-08-26T02:17:13.382Z"}