"""Create recovery_planner
Generated by Phi-Octopus Eden
2025-11-07 03:31:51.454519
"""

```python
from typing import Dict, Any


class RecoveryPlanner:
    """
    A class to manage limited error recovery by planning fallback actions.
    """

    def __init__(self):
        self.recovery_plan: Dict[str, Any] = {}

    def add_recovery_step(self, step_name: str, action_function: callable) -> None:
        """
        Adds a new recovery step to the plan.

        :param step_name: Name of the recovery step
        :param action_function: Function that performs the recovery action
        """
        self.recovery_plan[step_name] = action_function

    def execute_recovery(self, error_message: str) -> None:
        """
        Executes the first available recovery step based on the error message.

        :param error_message: Message describing the encountered error
        """
        for step_name, action in self.recovery_plan.items():
            if step_name.lower() in error_message.lower():
                print(f"Executing recovery step '{step_name}'...")
                action()
                return

    def default_fallback(self) -> None:
        """
        A default fallback function that logs the error.
        """
        print("No specific recovery step found. Logging the error...")


def example_action_function() -> None:
    """
    An example action function to be used as a recovery action.
    """
    print("Executing custom recovery action...")

# Example usage
if __name__ == "__main__":
    planner = RecoveryPlanner()
    planner.add_recovery_step("connection_error", example_action_function)
    
    # Simulate an error and try to recover
    planner.execute_recovery("Failed to connect")
```