{"record":{"id":"b9615d2fa30f1626","repo":"BerriAI/litellm","slug":"model-needs-to-be-set-for-bedrock","errorCode":null,"errorMessage":"Model needs to be set for bedrock","messagePattern":"Model needs to be set for bedrock","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"litellm/images/main.py","lineNumber":486,"sourceCode":"            # Forward OpenAI organization if present (set by proxy pre-call utils)\n            organization: Final[str | None] = kwargs.get(\"organization\", None)\n            model_response = openai_chat_completions.image_generation(\n                model=model,\n                prompt=prompt,\n                timeout=timeout,\n                api_key=api_key or dynamic_api_key,\n                api_base=api_base,\n                logging_obj=litellm_logging_obj,\n                optional_params=optional_params,\n                model_response=model_response,\n                organization=organization,\n                aimg_generation=aimg_generation,\n                client=client,\n                headers=headers,\n            )\n        elif custom_llm_provider == \"bedrock\":\n            if model is None:\n                raise Exception(\"Model needs to be set for bedrock\")\n            model_response = bedrock_image_generation.image_generation(\n                model=model,\n                prompt=prompt,\n                timeout=timeout,\n                logging_obj=litellm_logging_obj,\n                optional_params=optional_params,\n                model_response=model_response,\n                aimg_generation=aimg_generation,\n                client=client,\n                api_base=api_base,\n                api_key=api_key,\n            )\n        elif custom_llm_provider in litellm._custom_providers:  # Assume custom LLM provider\n            # Get the Custom Handler\n            custom_handler: CustomLLM | None = None\n            for item in litellm.custom_provider_map:\n                if item[\"provider\"] == custom_llm_provider:\n                    custom_handler = item[\"custom_handler\"]","sourceCodeStart":468,"sourceCodeEnd":504,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/images/main.py#L468-L504","documentation":"Bedrock image generation (e.g. Titan Image, Stability on Bedrock, Nova Canvas) is routed to a Bedrock-specific handler that performs AWS SigV4 signing (litellm/images/main.py:486-497). The model id is required to build the invoke-model URL, so model=None raises this Exception.","triggerScenarios":"Calling litellm.image_generation(prompt=..., custom_llm_provider='bedrock') with no model; or the model string failed provider parsing so model resolved to None; or passing model=None explicitly.","commonSituations":"Developer omits model expecting a default; or uses 'bedrock/' with an empty model suffix; or copies an OpenAI-style call (where dall-e defaults exist) to Bedrock.","solutions":["Pass the full Bedrock model id, e.g. model='bedrock/amazon.titan-image-generator-v1' or 'bedrock/stability.stable-diffusion-xl-v1'","If specifying custom_llm_provider='bedrock' separately, still pass model='amazon.nova-canvas-v1' etc.","Confirm AWS credentials (AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_REGION_NAME) are set so the call proceeds after the model fix"],"exampleFix":"# before\nlitellm.image_generation(prompt=\"a cat\", custom_llm_provider=\"bedrock\")\n\n# after\nlitellm.image_generation(model=\"bedrock/amazon.titan-image-generator-v1\", prompt=\"a cat\")","handlingStrategy":"validation","validationCode":"def validate_bedrock_image_call(model: str | None) -> str:\n    if not model:\n        raise ValueError(\"model is required for bedrock image generation, e.g. 'bedrock/amazon.titan-image-generator-v1'\")\n    return model","typeGuard":"def has_model(model: str | None) -> bool:\n    return isinstance(model, str) and model.strip() != ''","tryCatchPattern":"try:\n    r = litellm.image_generation(model=m, prompt=p, custom_llm_provider=\"bedrock\")\nexcept Exception as e:\n    if \"Model needs to be set for bedrock\" in str(e):\n        raise ValueError(\"pass model='bedrock/<model-id>'\") from e\n    raise","preventionTips":["Default bedrock image models in your config rather than relying on call sites to remember","Validate AWS env vars (region, keys) alongside the model check","Use 'bedrock/<full-model-id>' prefix form"],"tags":["image-generation","bedrock","aws","required-parameter"],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}