Was calling itself instead of self._preview.set_media in the else branch, causing infinite recursion and silent failure.