calesthio/OpenMontage · error · ValueError

execution_expires_after must be between 3600 and 259200

Error message

execution_expires_after must be between 3600 and 259200

What it means

Error "execution_expires_after must be between 3600 and 259200" thrown in calesthio/OpenMontage.

Source

Thrown at tools/video/seedance_ark.py:1213

    def _validate_remote_refs(self, refs: list[Any], label: str) -> None:
        for ref in refs:
            value = str(ref)
            if not value.startswith(("https://", "http://", "asset://")):
                raise ValueError(
                    f"{label} must be a public/signed URL or asset:// ID; "
                    "Ark does not document video Base64 or local paths"
                )

    def _validate_optional_parameters(self, payload: dict[str, Any]) -> None:
        callback = payload.get("callback_url")
        if callback is not None and not str(callback).startswith(
            ("https://", "http://")
        ):
            raise ValueError("callback_url must be an http(s) URL")
        expires = payload.get("execution_expires_after")
        if expires is not None and not 3600 <= int(expires) <= 259200:
            raise ValueError("execution_expires_after must be between 3600 and 259200")
        priority = payload.get("priority")
        if priority is not None and not 0 <= int(priority) <= 9:
            raise ValueError("priority must be between 0 and 9")
        safety = payload.get("safety_identifier")
        if safety is not None and len(str(safety)) > 64:
            raise ValueError("safety_identifier must be at most 64 characters")

    def _validate_request_size(self, payload: dict[str, Any]) -> None:
        # Base64 dominates request size; summing encoded media is a conservative
        # lower-cost check that avoids building a second complete JSON string.
        encoded_bytes = 0
        for item in payload["content"]:
            media = (
                item.get("image_url")
                or item.get("audio_url")
                or item.get("video_url")
                or {}
            )

View on GitHub (pinned to 95e1c3d0ab)

Solutions

  1. Set execution_expires_after to a value between 3600 (1 hour) and 259200 (3 days) seconds.
  2. Remove the parameter to use the service default if a custom expiry is not required.

When it happens

Trigger: execution_expires_after is set outside the allowed 3600-259200 second range.

Common situations: See trigger scenarios.


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