Skip to content

FINERACT-2836: Isolate Due Savings Charge Failures - #6460

Open
rhopman wants to merge 1 commit into
apache:developfrom
symbaglobal:FINERACT-2836-isolate-due-savings-charge-failures
Open

rhopman wants to merge 1 commit into
apache:developfrom
symbaglobal:FINERACT-2836-isolate-due-savings-charge-failures

Conversation

@rhopman

@rhopman rhopman commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

The Pay Due Savings Charges job previously processed all due charges in one shared transaction. If one account had insufficient funds, the job failed and rolled back successful collections for unrelated accounts. Recurring charges also collected all overdue installments in a single transaction, so failure on a later installment rolled back earlier affordable installments.

This change processes at most one due installment per independent transaction. The job repeatedly invokes the transactional service to collect recurring installments from oldest to newest, stopping that charge on the first failure while continuing to process other due charges. Successfully collected installments remain committed, and failures are recorded with the charge, account, and installment due-date context before the job reports the overall failure.

Tests cover mixed funded and insufficient-balance accounts, installment-level transaction isolation, partial catch-up of recurring charges, continued processing of unrelated charges, successful balance and charge updates, all-success behavior, and prevention of duplicate collection on rerun.

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Write the commit message as per our guidelines
  • Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.
  • Create/update unit or integration tests for verifying the changes made.
  • Follow our coding conventions.
  • Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes
  • This PR must not be a "code dump". Large changes can be made in a branch, with assistance. Ask for help on the developer mailing list.
  • If merging this PR resolves a JIRA issue, I will mark that issue as resolved and set "Fix Version/s" appropriately.
  • I followed the AI Policy.

Your assigned reviewer(s) will follow our guidelines for code reviews.

@rhopman
rhopman marked this pull request as draft September 17, 2026 06:47
@rhopman
rhopman force-pushed the FINERACT-2836-isolate-due-savings-charge-failures branch from edcb278 to c409580 Compare September 17, 2026 07:38
@rhopman
rhopman marked this pull request as ready for review September 17, 2026 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant