{"record":{"id":"488b643399a8d613","repo":"BerriAI/litellm","slug":"error-transforming-inpainting-params-e-got-par","errorCode":null,"errorMessage":"Error transforming inpainting params: {e}. Got params: {inpainting_params}, Expected params: {AmazonNovaCanvasInpaintingParams.__annotations__}","messagePattern":"Error transforming inpainting params: (.+?)\\. Got params: (.+?), Expected params: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/bedrock/image_generation/amazon_nova_canvas_transformation.py","lineNumber":132,"sourceCode":"            try:\n                image_generation_config_typed = AmazonNovaCanvasImageGenerationConfig(**image_generation_config)\n            except Exception as e:\n                raise ValueError(\n                    f\"Error transforming image generation config: {e}. Got params: {image_generation_config}, Expected params: {AmazonNovaCanvasImageGenerationConfig.__annotations__}\"\n                )\n\n            return AmazonNovaCanvasColorGuidedRequest(\n                taskType=task_type,\n                colorGuidedGenerationParams=color_guided_generation_params_typed,\n                imageGenerationConfig=image_generation_config_typed,\n            )\n        if task_type == \"INPAINTING\":\n            inpainting_params: dict[str, Any] = image_generation_config.pop(\"inpaintingParams\", {})\n            inpainting_params = {\"text\": text, **inpainting_params}\n            try:\n                inpainting_params_typed: Final = AmazonNovaCanvasInpaintingParams(**inpainting_params)\n            except Exception as e:\n                raise ValueError(\n                    f\"Error transforming inpainting params: {e}. Got params: {inpainting_params}, Expected params: {AmazonNovaCanvasInpaintingParams.__annotations__}\"\n                )\n\n            try:\n                image_generation_config_typed = AmazonNovaCanvasImageGenerationConfig(**image_generation_config)\n            except Exception as e:\n                raise ValueError(\n                    f\"Error transforming image generation config: {e}. Got params: {image_generation_config}, Expected params: {AmazonNovaCanvasImageGenerationConfig.__annotations__}\"\n                )\n\n            return AmazonNovaCanvasInpaintingRequest(\n                taskType=task_type,\n                inpaintingParams=inpainting_params_typed,\n                imageGenerationConfig=image_generation_config_typed,\n            )\n        raise NotImplementedError(f\"Task type {task_type} is not supported\")\n\n    @classmethod","sourceCodeStart":114,"sourceCodeEnd":150,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/bedrock/image_generation/amazon_nova_canvas_transformation.py#L114-L150","documentation":"Raised when constructing the AmazonNovaCanvasInpaintingParams TypedDict from the merged dict of caller-supplied inpaintingParams plus the prompt text fails. The inpaintingParams key is popped from image_generation_config, {'text': text} is merged in, and any construction failure (missing required field such as maskImage/image, wrong types, or unexpected keys) raises this ValueError with the offending dict and expected annotations.","triggerScenarios":"Calling Nova Canvas image generation with taskType INPAINTING (i.e. image_generation_config contains 'inpaintingParams') where inpaintingParams lacks required fields (text is auto-injected, but maskImage/image must be supplied) or contains keys not in AmazonNovaCanvasInpaintingParams.","commonSituations":"Assuming inpainting works like plain text-to-image and omitting maskImage; passing base64 strings where a specific structure is expected; including outpaintingParams/colorGuided params inside inpaintingParams; typo'd key names.","solutions":["Compare 'Got params' with the 'Expected params' annotations in the message and supply every required field (notably the mask/image inputs) with correct types.","Remove any keys that are not part of AmazonNovaCanvasInpaintingParams from your inpaintingParams dict.","Verify you actually want INPAINTING: if you did not intend to inpaint, make sure you are not accidentally setting 'inpaintingParams' in image_generation_config."],"exampleFix":"# before\nimage_generation_config={\n    \"inpaintingParams\": {\"maskImage\": MY_MASK_B64, \"extra\": \"oops\"},\n}\n\n# after (only known keys, all required fields present; text is injected automatically)\nimage_generation_config={\n    \"inpaintingParams\": {\"maskImage\": MY_MASK_B64},\n}","handlingStrategy":"validation","validationCode":"from litellm.llms.bedrock.image_generation.amazon_nova_canvas_transformation import AmazonNovaCanvasInpaintingParams\n\nALLOWED_INPAINT = set(AmazonNovaCanvasInpaintingParams.__annotations__)\n\ndef validate_inpainting_params(p: dict) -> dict:\n    bad = set(p) - ALLOWED_INPAINT\n    if bad:\n        raise ValueError(f\"Unknown inpaintingParams keys: {bad}; allowed: {ALLOWED_INPAINT - {'text'}}\")\n    return p","typeGuard":"def is_valid_inpainting_params(p: dict) -> bool:\n    return set(p).issubset(AmazonNovaCanvasInpaintingParams.__annotations__)","tryCatchPattern":"try:\n    litellm.image_generation(model=model, prompt=p, image_generation_config={\"inpaintingParams\": params})\nexcept ValueError as e:\n    log.warning(\"Inpainting params rejected: %s\", e)","preventionTips":["Check the AWS Nova Canvas inpainting schema for required fields (mask/image) before calling.","Never nest task params from other task types inside inpaintingParams.","Remember litellm injects 'text' automatically — do not duplicate it with a different type."],"tags":["bedrock","nova-canvas","inpainting","image-generation","validation"],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}