def get_match_or_report_error(
        self, finding: Finding, retrigger_text: str, retrigger_action: Callable, debug_action: Callable
    ) -> Optional[Process]:
        """
        Returns the single-matching process. If more than one process matches, blocks will be added to the Finding
        to report the error and optionally allow re-triggering the action with a chosen process.
        """
        if self.has_exactly_one_match():
            return self.get_exact_match()
        elif len(self.matching_processes) == 0:
            finding.add_enrichment(
                [MarkdownBlock("No matching processes. The processes in the pod are:")]
                + self.__get_error_blocks(self.all_processes, retrigger_text, retrigger_action, debug_action)
            )
            return None
        elif len(self.matching_processes) > 1:
            finding.add_enrichment(
                [MarkdownBlock("More than one matching process. The matching processes are:")]
                + self.__get_error_blocks(self.matching_processes, retrigger_text, retrigger_action, debug_action)
            )
            return None

        Returns the single-matching process. If more than one process matches, blocks will be added to the Finding
        to report the error and optionally allow re-triggering the action with a chosen process.
        
src/robusta/integrations/kubernetes/process_utils.py