HKUDS/nanobot · error · ImageGenerationError
Custom image generation failed
Error message
Custom image generation failed (HTTP {response.status_code}): {detail} What it means
Raised in the custom OpenAI-compatible image generator's generate when POST {api_base}/images/generations returns a non-2xx status. Wraps httpx.HTTPStatusError with status code and up to 1000 chars of body, meaning the user-configured endpoint rejected the request — usually a misconfigured base URL, key, or unsupported parameter.
Solutions
- Verify api_base points at a valid OpenAI-compatible images endpoint
- Check the API key/credentials for the custom endpoint
- Inspect the detail body for which parameter the server rejected and adjust (size, n, model)
- Review extra_body for fields the custom server does not support
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at nanobot/providers/image_generation.py:1351 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of HKUDS/nanobot@42f37dc4c0 (2026-08-26).
Data as JSON: /api/errors/720a94467735d6c9.
Report an issue: GitHub.
Appendix: source
Thrown at nanobot/providers/image_generation.py:1351
"n": 1,
"size": self._custom_size(aspect_ratio, image_size),
}
body.update(self.extra_body)
logger.info("Custom Images API request: POST {}/images/generations body={}", self.api_base, body)
response = await self._http_post(
f"{self.api_base}/images/generations",
headers=headers,
body=body,
)
try:
response.raise_for_status()
except httpx.HTTPStatusError as exc:
detail = response.text[:1000]
logger.error("Custom Images API error ({}): {}", response.status_code, detail)
raise ImageGenerationError(
f"Custom image generation failed (HTTP {response.status_code}): {detail}"
) from exc
payload = response.json()
logger.info("Custom Images API response ({}): {}", response.status_code,
{k: v for k, v in payload.items() if k != "data"})
images = await _openai_images_from_payload(payload, proxy=self.proxy)
self._require_images(images, payload)
return GeneratedImageResponse(images=images, content="", raw=payload)
# ---------------------------------------------------------------------------
# OpenAI Codex image generation
# ---------------------------------------------------------------------------
View on GitHub (pinned to 42f37dc4c0)