diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractCumulativeLoanScheduleGenerator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractCumulativeLoanScheduleGenerator.java index 12bc62e798c..f73d494e7c6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractCumulativeLoanScheduleGenerator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractCumulativeLoanScheduleGenerator.java @@ -3114,6 +3114,11 @@ private LoanScheduleDTO rescheduleNextInstallmentsForProgressiveLoans(final Math processInstallmentsInstallments = fetchRetainedInstallmentsForProgressiveLoans(loan.getRepaymentScheduleInstallments(), rescheduleFrom, currency); } + // if processed installements is empty , check for graced installments + if (processInstallmentsInstallments.isEmpty()) { + processInstallmentsInstallments = loan.getRepaymentScheduleInstallments().stream() + .filter(LoanRepaymentScheduleInstallment::isFullyGraced).toList(); + } final List newRepaymentScheduleInstallments = new ArrayList<>(); // Block process the installment and creates the period if it falls