Skip to content

FINERACT-2621: Add CI-only diagnostics for missing external events in e2e - #6175

Open
avivijay19 wants to merge 1 commit into
apache:developfrom
avivijay19:FINERACT-2621/e2e-event-failure-diagnostics
Open

FINERACT-2621: Add CI-only diagnostics for missing external events in e2e#6175
avivijay19 wants to merge 1 commit into
apache:developfrom
avivijay19:FINERACT-2621/e2e-event-failure-diagnostics

Conversation

@avivijay19

Copy link
Copy Markdown
Contributor

Description

Extracted from #6069, where review asked for these e2e changes to be raised in a separate PR since they are not part of the Spring Boot upgrade itself.

  • When an event assertion times out, the step now queries the internal external events endpoint and logs whether the event was never persisted to m_external_event or was persisted but never delivered to the broker. A timeout alone cannot tell these two stages apart, which makes intermittent CI failures hard to attribute. Controlled by EVENT_FAILURE_DIAGNOSTICS_ENABLED, off by default and set only in the e2e workflow, and it only runs after an assertion has already failed, so passing runs are unaffected.
  • loanAccountDataV1Check consumes the latest received event of the asserted type, which can be a stale predecessor when earlier steps raised events of the same type for the same loan. The verification is now retried so each attempt consumes the next event as it arrives.

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.

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

… e2e

The buy down fee amortization event assertion times out intermittently in CI
only, and the timeout alone cannot tell whether the event was never persisted
to m_external_event or merely never delivered to the broker. On failure the
step now queries the internal external events endpoint and logs which of the
two stages lost the event. Enabled via EVENT_FAILURE_DIAGNOSTICS_ENABLED, off
by default and set only in the e2e workflow, so passing runs are unaffected.

Also retry loanAccountDataV1Check: earlier steps can raise events of the same
type for the same loan, and assertEvent consumes the latest one received,
which is a stale predecessor while the newest event is still in transit. Each
attempt consumes one event, so retrying waits for the next one to arrive.
@avivijay19
avivijay19 force-pushed the FINERACT-2621/e2e-event-failure-diagnostics branch from 05e29a1 to 85f12c6 Compare July 25, 2026 07:37
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