{"record":{"id":"b535420288b46ff3","repo":"calesthio/OpenMontage","slug":"execution-expires-after-must-be-between-3600-and-2","errorCode":null,"errorMessage":"execution_expires_after must be between 3600 and 259200","messagePattern":"execution_expires_after must be between 3600 and 259200","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"tools/video/seedance_ark.py","lineNumber":1213,"sourceCode":"\n    def _validate_remote_refs(self, refs: list[Any], label: str) -> None:\n        for ref in refs:\n            value = str(ref)\n            if not value.startswith((\"https://\", \"http://\", \"asset://\")):\n                raise ValueError(\n                    f\"{label} must be a public/signed URL or asset:// ID; \"\n                    \"Ark does not document video Base64 or local paths\"\n                )\n\n    def _validate_optional_parameters(self, payload: dict[str, Any]) -> None:\n        callback = payload.get(\"callback_url\")\n        if callback is not None and not str(callback).startswith(\n            (\"https://\", \"http://\")\n        ):\n            raise ValueError(\"callback_url must be an http(s) URL\")\n        expires = payload.get(\"execution_expires_after\")\n        if expires is not None and not 3600 <= int(expires) <= 259200:\n            raise ValueError(\"execution_expires_after must be between 3600 and 259200\")\n        priority = payload.get(\"priority\")\n        if priority is not None and not 0 <= int(priority) <= 9:\n            raise ValueError(\"priority must be between 0 and 9\")\n        safety = payload.get(\"safety_identifier\")\n        if safety is not None and len(str(safety)) > 64:\n            raise ValueError(\"safety_identifier must be at most 64 characters\")\n\n    def _validate_request_size(self, payload: dict[str, Any]) -> None:\n        # Base64 dominates request size; summing encoded media is a conservative\n        # lower-cost check that avoids building a second complete JSON string.\n        encoded_bytes = 0\n        for item in payload[\"content\"]:\n            media = (\n                item.get(\"image_url\")\n                or item.get(\"audio_url\")\n                or item.get(\"video_url\")\n                or {}\n            )","sourceCodeStart":1195,"sourceCodeEnd":1231,"githubUrl":"https://github.com/calesthio/OpenMontage/blob/95e1c3d0ab93482159818560f6a8c8e866b9139f/tools/video/seedance_ark.py#L1195-L1231","documentation":"Error \"execution_expires_after must be between 3600 and 259200\" thrown in calesthio/OpenMontage.","triggerScenarios":"execution_expires_after is set outside the allowed 3600-259200 second range.","commonSituations":"See trigger scenarios.","solutions":["Set execution_expires_after to a value between 3600 (1 hour) and 259200 (3 days) seconds.","Remove the parameter to use the service default if a custom expiry is not required."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"95e1c3d0ab93482159818560f6a8c8e866b9139f","analyzedAt":"2026-08-15T06:31:20.014Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}