odysseus-dev/odysseus · error · HTTPException

Invalid image

Error message

Invalid image

What it means

Error "Invalid image" thrown in odysseus-dev/odysseus.

Source

Thrown at routes/gallery/gallery_routes.py:49

_SAM_STATE: Dict[str, Any] = {}
_GROUNDING_STATE: Dict[str, Any] = {}


def _b64_to_pil_image(image_b64: str, *, mode: str = "RGBA"):
    if not image_b64:
        raise HTTPException(400, "Missing image")
    if "," in image_b64 and image_b64.split(",", 1)[0].startswith("data:"):
        image_b64 = image_b64.split(",", 1)[1]
    try:
        from PIL import Image

        raw = base64.b64decode(image_b64)
        return Image.open(io.BytesIO(raw)).convert(mode)
    except HTTPException:
        raise
    except Exception as exc:
        raise HTTPException(400, "Invalid image") from exc


def _pil_image_to_b64(img, *, fmt: str = "PNG") -> str:
    buf = io.BytesIO()
    img.save(buf, format=fmt)
    return base64.b64encode(buf.getvalue()).decode("ascii")


def _load_sam_backend():
    model_id = os.getenv("ODYSSEUS_SAM_MODEL", "facebook/sam-vit-base")
    cached = _SAM_STATE.get(model_id)
    if cached:
        return cached
    try:
        import torch
        from transformers import SamModel, SamProcessor
    except Exception as exc:
        raise HTTPException(

View on GitHub (pinned to f9235ebbf1)

Solutions

  1. Send a valid, decodable image in a supported format (PNG/JPEG).
  2. Re-export or re-upload the image if it is corrupted.

When it happens

Trigger: Triggered when the corresponding server-side validation or runtime check at the recorded location rejects the request or operation and returns this error message to the caller.

Common situations: See trigger scenarios.


AI-assisted analysis of odysseus-dev/odysseus@f9235ebbf1 (2026-08-14). Data as JSON: /api/errors/cae40b9e01a198cd. Report an issue: GitHub.