calesthio/OpenMontage · error · ValueError
reference_video_path is not supported by Ark; upload the vid
Error message
reference_video_path is not supported by Ark; upload the video to a public/signed HTTPS URL or Ark asset first
What it means
Hard guard in `_build_payload`: if `reference_video_path` is set, the tool refuses immediately. The Ark content-generation API only accepts reference videos that are already publicly (or signed) reachable HTTPS URLs or Ark-hosted assets — it performs no client-side upload of local video files. The message tells you exactly what to do instead.
Source
Thrown at tools/video/seedance_ark.py:731
"4:3",
"1:1",
"3:4",
"9:16",
}
if ratio not in valid_ratios:
raise ValueError(
"aspect_ratio must be adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, or 9:16"
)
max_duration = 30 if variant == "2.5" else 15
duration = self._normalize_duration(inputs.get("duration", 5), max_duration)
prompt = str(inputs.get("prompt") or "").strip()
content: list[dict[str, Any]] = []
if prompt:
content.append({"type": "text", "text": prompt})
if inputs.get("reference_video_path"):
raise ValueError(
"reference_video_path is not supported by Ark; upload the "
"video to a public/signed HTTPS URL or Ark asset first"
)
if operation == "text_to_video":
if not prompt:
raise ValueError("prompt is required for text_to_video")
if self._has_any_media(inputs):
raise ValueError(
"text_to_video does not accept reference media; use "
"image_to_video or reference_to_video"
)
elif operation == "image_to_video":
first_refs = self._single_image_refs(inputs)
if len(first_refs) != 1:
raise ValueError("image_to_video requires exactly one reference image")
content.append(self._image_content(first_refs[0], role="first_frame"))
end_refs = [View on GitHub (pinned to 95e1c3d0ab)
Solutions
- Upload the video to any HTTPS-accessible location (object storage with a signed URL, public bucket, Ark asset storage) and pass `reference_video_url` instead
- For local files with no hosting, use a different provider tool that accepts paths (check the registry's video_generation capability)
- Ensure the URL stays valid for the whole task lifetime — generation fetches it server-side
Example fix
# before
inputs = {"operation": "reference_to_video", "reference_video_path": "/tmp/clip.mp4"}
# after
inputs = {"operation": "reference_to_video", "reference_video_url": "https://cdn.example.com/clip.mp4"} Defensive patterns
Strategy: validation
Validate before calling
if inputs.get("reference_video_path"):
raise ValueError(
"Ark cannot ingest local files; upload first and pass reference_video_url"
)
# upload flow: push file to signed-URL storage, then
# inputs["reference_video_url"] = upload(inputs.pop("reference_video_path")) Type guard
def has_local_video_ref(inputs: dict) -> bool:
return bool(inputs.get("reference_video_path")) Try / catch
try:
result = ark.execute(inputs)
except ValueError as e:
if "reference_video_path is not supported" in str(e):
url = upload_to_https_storage(inputs.pop("reference_video_path"))
inputs["reference_video_url"] = url
result = ark.execute(inputs)
else:
raise Prevention
- Route local-media workflows to a provider tool that uploads (check registry video_generation entries), or maintain a shared upload helper that converts *_path to *_url
- Signed URLs must remain valid until the Ark task finishes fetching the asset
When it happens
Trigger: Passing `reference_video_path: '/data/clip.mp4'` (mirroring other tools that do upload local files, e.g. the Kling tool in this repo) together with operation reference_to_video or image_to_video.
Common situations: Developers porting call shapes from kling_official_video or fal-based tools that accept local paths; users assuming OpenMontage uploads media on their behalf; local-video-driven workflows (clip-factory, podcast-repurpose) trying to condition Ark generation on a local file.
Related errors
- pricing is unknown for a custom Ark Endpoint/Model; set cust
- custom_price_cny_per_million_tokens must be a finite number
- task_action must be generate, create, query, or cancel
- operation must be text_to_video, image_to_video, or referenc
- resolution must be 480p, 720p, 1080p, or 4k
AI-assisted analysis of calesthio/OpenMontage@95e1c3d0ab (2026-08-15).
Data as JSON: /api/errors/cd53029026ff0701.
Report an issue: GitHub.