{"record":{"id":"b39ace501b637235","repo":"calesthio/OpenMontage","slug":"unknown-renderer-family-renderer-family-r-valid","errorCode":null,"errorMessage":"Unknown renderer_family {renderer_family!r}. Valid families: {sorted(cls.RENDERER_FAMILY_MAP)}. Set renderer_family at proposal stage.","messagePattern":"Unknown renderer_family (.+?)\\. Valid families: (.+?)\\. Set renderer_family at proposal stage\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"tools/video/video_compose.py","lineNumber":756,"sourceCode":"        \"explainer-teacher\": \"Explainer\",\n        \"cinematic-trailer\": \"CinematicRenderer\",\n        \"documentary-montage\": \"CinematicRenderer\",\n        \"product-reveal\": \"Explainer\",\n        \"screen-demo\": \"Explainer\",\n        \"presenter\": \"TalkingHead\",\n        \"animation-first\": \"Explainer\",\n    }\n\n    @classmethod\n    def _get_composition_id(cls, renderer_family: str) -> str:\n        \"\"\"Resolve renderer_family to Remotion composition ID.\n\n        Raises ValueError if renderer_family is not recognized — the caller\n        must set it at proposal stage.\n        \"\"\"\n        comp = cls.RENDERER_FAMILY_MAP.get(renderer_family)\n        if comp is None:\n            raise ValueError(\n                f\"Unknown renderer_family {renderer_family!r}. \"\n                f\"Valid families: {sorted(cls.RENDERER_FAMILY_MAP)}. \"\n                f\"Set renderer_family at proposal stage.\"\n            )\n        return comp\n\n    @staticmethod\n    def _cuts_to_cinematic_scenes(cuts: list[dict[str, Any]]) -> list[dict[str, Any]]:\n        \"\"\"Adapt canonical sequential cuts to CinematicRenderer's scene contract.\"\"\"\n\n        scenes: list[dict[str, Any]] = []\n        timeline_cursor = 0.0\n        hard_transitions = {\"cut\", \"none\"}\n        title_types = {\"hero_title\", \"text_card\", \"title\"}\n\n        for index, cut in enumerate(cuts):\n            try:\n                source_in = float(cut.get(\"in_seconds\", 0))","sourceCodeStart":738,"sourceCodeEnd":774,"githubUrl":"https://github.com/calesthio/OpenMontage/blob/95e1c3d0ab93482159818560f6a8c8e866b9139f/tools/video/video_compose.py#L738-L774","documentation":"Error \"Unknown renderer_family {renderer_family!r}. Valid families: {sorted(cls.RENDERER_FAMILY_MAP)}. Set renderer_family at proposal stage.\" thrown in calesthio/OpenMontage.","triggerScenarios":"video_compose receives a renderer_family value that is not in RENDERER_FAMILY_MAP, usually because the proposal stage set an invalid or missing renderer_family.","commonSituations":"See trigger scenarios.","solutions":["Set renderer_family at the proposal stage to one of the valid families listed in the error.","Check the spelling of renderer_family against RENDERER_FAMILY_MAP keys in tools/video/video_compose.py."],"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"}