{"record":{"id":"c18560b1d7d00b31","repo":"calesthio/OpenMontage","slug":"local-audio-file-does-not-exist-path","errorCode":null,"errorMessage":"local audio file does not exist: {path}","messagePattern":"local audio file does not exist: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"tools/video/seedance_ark.py","lineNumber":1162,"sourceCode":"        self, decoded: bytes, mime: str, *, max_seconds: int = 15\n    ) -> float:\n        suffix = \".wav\" if mime == \"audio/wav\" else \".mp3\"\n        # Windows does not allow ffprobe to reopen a NamedTemporaryFile while\n        # Python still holds the file handle. Close it before probing, then\n        # remove it explicitly on every path.\n        with tempfile.NamedTemporaryFile(suffix=suffix, delete=False) as temp:\n            temp.write(decoded)\n            temp.flush()\n            temp_path = Path(temp.name)\n        try:\n            return self._probe_local_audio_duration(temp_path, max_seconds=max_seconds)\n        finally:\n            temp_path.unlink(missing_ok=True)\n\n    @staticmethod\n    def _probe_local_audio_duration(path: Path, *, max_seconds: int = 15) -> float:\n        if not path.is_file():\n            raise ValueError(f\"local audio file does not exist: {path}\")\n        ffprobe = shutil.which(\"ffprobe\")\n        if not ffprobe:\n            raise ValueError(\"ffprobe is required to validate local reference audio\")\n        try:\n            proc = subprocess.run(\n                [\n                    ffprobe,\n                    \"-v\",\n                    \"error\",\n                    \"-show_entries\",\n                    \"format=duration\",\n                    \"-of\",\n                    \"default=noprint_wrappers=1:nokey=1\",\n                    str(path),\n                ],\n                capture_output=True,\n                text=True,\n                timeout=10,","sourceCodeStart":1144,"sourceCodeEnd":1180,"githubUrl":"https://github.com/calesthio/OpenMontage/blob/95e1c3d0ab93482159818560f6a8c8e866b9139f/tools/video/seedance_ark.py#L1144-L1180","documentation":"Error \"local audio file does not exist: {path}\" thrown in calesthio/OpenMontage.","triggerScenarios":"A local reference audio path passed to Seedance Ark does not exist on disk.","commonSituations":"See trigger scenarios.","solutions":["Correct the audio file path; the file does not exist at the given location.","Use an absolute path or verify the working directory if using a relative path."],"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-15T17:31:12.345Z"}