{"record":{"id":"18c6063e23710cb2","repo":"microsoft/semantic-kernel","slug":"prompt-is-required","errorCode":null,"errorMessage":"Prompt is required.","messagePattern":"Prompt is required\\.","errorType":"exception","errorClass":"ServiceInvalidRequestError","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_to_image_base.py","lineNumber":63,"sourceCode":"            settings = OpenAITextToImageExecutionSettings(**kwargs)\n        if not isinstance(settings, OpenAITextToImageExecutionSettings):\n            settings = OpenAITextToImageExecutionSettings.from_prompt_execution_settings(settings)\n        if width:\n            warn(\"The 'width' argument is deprecated. Use 'settings.size' instead.\", DeprecationWarning)\n            if settings.size and not settings.size.width:\n                settings.size.width = width\n        if height:\n            warn(\"The 'height' argument is deprecated. Use 'settings.size' instead.\", DeprecationWarning)\n            if settings.size and not settings.size.height:\n                settings.size.height = height\n        if not settings.size and width and height:\n            settings.size = ImageSize(width=width, height=height)\n\n        if not settings.prompt:\n            settings.prompt = description\n\n        if not settings.prompt:\n            raise ServiceInvalidRequestError(\"Prompt is required.\")\n\n        if not settings.ai_model_id:\n            settings.ai_model_id = self.ai_model_id\n\n        response = await self._send_request(settings)\n\n        assert isinstance(response, ImagesResponse)  # nosec\n        if not response.data or not (response.data[0].url or response.data[0].b64_json):\n            raise ServiceResponseException(\"Failed to generate image.\")\n\n        return response.data[0].url or response.data[0].b64_json  # type: ignore[return-value]\n\n    async def generate_images(\n        self,\n        prompt: str,\n        settings: PromptExecutionSettings | None = None,\n        **kwargs: Any,\n    ) -> list[str]:","sourceCodeStart":45,"sourceCodeEnd":81,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_to_image_base.py#L45-L81","documentation":"Raised by the deprecated generate_image method on OpenAITextToImageBase. The method first copies the description argument into settings.prompt (if settings.prompt is empty), then re-checks; if there is still no prompt it throws ServiceInvalidRequestError (a subclass of ServiceResponseException). This guards against a call where neither a description nor a settings.prompt was supplied.","triggerScenarios":"Calling await service.generate_image(description=None) or generate_image('') while settings (if passed) has no prompt field. Also when kwargs contain no 'prompt' and no description is given.","commonSituations":"Migrating to the new generate_images API and passing the prompt in the wrong place; passing settings that were constructed without a prompt; the description variable is conditionally populated and resolved to an empty string.","solutions":["Pass a non-empty description: await service.generate_image('A red panda')","Migrate off the deprecated generate_image to generate_images(prompt='A red panda'), which is the supported path","If using settings, set settings.prompt explicitly before calling","Guard the caller so description is never None or empty"],"exampleFix":"# before (deprecated, raises)\nawait service.generate_image(description=None)\n\n# after (supported API)\nawait service.generate_images(prompt=\"A red panda\")","handlingStrategy":"validation","validationCode":"if not description:\n    raise ValueError(\"generate_image requires a non-empty description\")\nawait service.generate_image(description=description)","typeGuard":"def is_valid_prompt(p: str | None) -> bool:\n    return isinstance(p, str) and p.strip() != \"\"","tryCatchPattern":"from semantic_kernel.exceptions.service_exceptions import ServiceInvalidRequestError\n\ntry:\n    await service.generate_image(description=desc)\nexcept ServiceInvalidRequestError as e:\n    if \"Prompt is required\" in str(e):\n        # prompt/description missing — fix caller and retry\n        ...\n    raise","preventionTips":["Migrate to generate_images; generate_image is deprecated","Validate description is non-empty before calling","Never pass None as the description"],"tags":["openai","text-to-image","validation","deprecated","python"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}