public static String getFailureMessage(V1Pod v1Pod) {
        if (v1Pod == null || v1Pod.getStatus() == null) {
            return null;
        }
        List<V1PodCondition> podConditions = v1Pod.getStatus().getConditions();
        if (podConditions == null || podConditions.isEmpty()) {
            return null;
        }
        if (checkForPodCondition(v1Pod, PodCondition.READY)) {
            return null;
        }
        Map<PodCondition, V1PodCondition> podConditionsMap = new EnumMap<>(PodCondition.class);
        podConditions.stream().forEach(condition -> {
            PodCondition podCondition = PodCondition.fromString(condition.getType());
            if (podCondition != null) {
                podConditionsMap.put(podCondition, condition);
            }
        });

        String message = getMessageForCondition(podConditionsMap, PodCondition.INITIALIZED);
        if (StringUtils.isNotBlank(message)) {
            return message;
        }
        message = getMessageForCondition(podConditionsMap, PodCondition.POD_SCHEDULED);
        if (StringUtils.isNotBlank(message)) {
            return message;
        }
        message = getMessageForCondition(podConditionsMap, PodCondition.CONTAINERS_READY);
        if (StringUtils.isNotBlank(message)) {
            return message;
        }
        message = getMessageForCondition(podConditionsMap, PodCondition.READY);

        return message;
    }
Failure Reason order: Initialized | Pod Scheduled | Containers Ready | Ready
deployer/deployer-services/src/main/java/io/hyscale/deployer/services/util/K8sPodUtil.java