calesthio/OpenMontage · error · ValueError

Unsupported Atlas video model id {model!r}. Use get_info()['

Error message

Unsupported Atlas video model id {model!r}. Use get_info()['model_catalog'] for live routes.

What it means

Raised by AtlasVideo._resolve_model when the requested model id is not a key in the module's VIDEO_MODELS registry. The tool only accepts the Atlas Cloud model ids it knows routes for; anything else — new ids, aliases, other providers' ids — is rejected before route resolution. The message points at get_info()['model_catalog'] as the source of truth.

Source

Thrown at tools/video/atlas_video.py:189

    def estimate_cost(self, inputs: dict[str, Any]) -> float:
        model = self._resolve_model(
            str(inputs.get("model", _DEFAULT_MODEL)),
            str(inputs.get("operation", "text_to_video")),
            str(inputs["model_variant"]) if inputs.get("model_variant") else None,
        )
        rate = VIDEO_MODELS.get(model, {}).get("cost_per_second", _DEFAULT_COST_PER_SECOND)
        duration = int(inputs.get("duration", 10))
        return round(rate * max(duration, 0), 4)

    def estimate_runtime(self, inputs: dict[str, Any]) -> float:
        return 180.0

    def is_operation_available(self, operation: str) -> bool:
        return operation in _OPERATIONS

    def _resolve_model(self, model: str, operation: str, variant: str | None = None) -> str:
        if model not in VIDEO_MODELS:
            raise ValueError(
                f"Unsupported Atlas video model id {model!r}. Use get_info()['model_catalog'] for live routes."
            )
        spec = VIDEO_MODELS[model]
        variant = variant or str(spec.get("variant", "standard"))
        route_key = operation if variant == "standard" else f"{operation}_{variant}"
        resolved = VIDEO_ROUTES.get(spec["family"], {}).get(route_key)
        if not resolved:
            raise ValueError(
                f"{spec['family']} does not expose operation={operation!r}, variant={variant!r} on Atlas Cloud"
            )
        return resolved

    @staticmethod
    def _validate_choice(name: str, value: Any, allowed: tuple[Any, ...] | None) -> Any:
        if allowed and value not in allowed:
            raise ValueError(f"{name}={value!r} is not supported; choose one of {list(allowed)}")
        return value

View on GitHub (pinned to 95e1c3d0ab)

Solutions

  1. Call get_info() and copy an exact id from model_catalog
  2. Upgrade OpenMontage so VIDEO_MODELS includes the newest Atlas models
  3. If the model is routed on Atlas but missing locally, add its spec to VIDEO_MODELS with its family routes

Example fix

# before
inputs = {"model": "seedance", "prompt": "..."}
# after
info = tool.get_info()
inputs = {"model": "seedance-2-5-flash", "prompt": "..."}  # exact id from model_catalog
Defensive patterns

Strategy: validation

Validate before calling

catalog = tool.get_info()["model_catalog"]
model = inputs.get("model")
if model not in {m["id"] for m in catalog}:
    raise ValueError(f"unknown model {model!r}; valid: {sorted(m['id'] for m in catalog)}")

Type guard

def is_known_atlas_model(tool, model: Any) -> bool:
    return isinstance(model, str) and model in {
        m["id"] for m in tool.get_info()["model_catalog"]
    }

Prevention

When it happens

Trigger: Passing a model id copied from Atlas docs that the installed tool version predates; using a family name ('seedance') instead of the full id; typos and case mismatches; ids from fal.run or other gateways.

Common situations: Atlas Cloud adds a model and the pinned tool lags; teams standardize on shorthand aliases the tool doesn't define.

Related errors


AI-assisted analysis of calesthio/OpenMontage@95e1c3d0ab (2026-08-15). Data as JSON: /api/errors/bd674b2633346c99. Report an issue: GitHub.