apiVersion: jenkins.io/v1 kind: PipelineActivity metadata: annotations: lighthouse.jenkins-x.io/cloneURI: https://github.com/greencapitaltrade/destiny.git lighthouse.jenkins-x.io/job: release pipeline.jenkins-x.io/traceID: ffef0d187fc5dc1df02dd5314fafa8e5 creationTimestamp: "2026-09-01T05:17:23Z" generation: 8 labels: branch: main build: "207" context: release created-by-lighthouse: "true" event-GUID: 67342cee-a5c4-11f1-96e5-0d45593b4b09 lighthouse.jenkins-x.io/baseSHA: a1d96a01b5bc439d28a8dc7462c369969e766851 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1788239843500" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: apitaltrade-destiny-main-release-pjg8s lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: a1d96a01b5bc439d28a8dc7462c369969e766851 lighthouse.jenkins-x.io/refs.org: greencapitaltrade lighthouse.jenkins-x.io/refs.repo: destiny lighthouse.jenkins-x.io/type: postsubmit owner: greencapitaltrade podName: apitaltrade-destiny-main-release-c5rvx-from-build-pack-pod provider: github repository: destiny tekton.dev/pipeline: apitaltrade-destiny-main-release managedFields: - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:branch: {} f:context: {} f:owner: {} f:provider: {} f:repository: {} f:spec: f:lastCommitMessage: {} f:lastCommitSHA: {} f:releaseNotesURL: {} f:version: {} manager: jx-changelog-0.10.29 operation: Update time: "2026-09-01T05:22:18Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:lighthouse.jenkins-x.io/cloneURI: {} f:lighthouse.jenkins-x.io/job: {} f:pipeline.jenkins-x.io/traceID: {} f:labels: .: {} f:build: {} f:created-by-lighthouse: {} f:event-GUID: {} f:lighthouse.jenkins-x.io/baseSHA: {} f:lighthouse.jenkins-x.io/branch: {} f:lighthouse.jenkins-x.io/buildNum: {} f:lighthouse.jenkins-x.io/context: {} f:lighthouse.jenkins-x.io/id: {} f:lighthouse.jenkins-x.io/job: {} f:lighthouse.jenkins-x.io/lastCommitSHA: {} f:lighthouse.jenkins-x.io/refs.org: {} f:lighthouse.jenkins-x.io/refs.repo: {} f:lighthouse.jenkins-x.io/type: {} f:podName: {} f:tekton.dev/pipeline: {} f:spec: .: {} f:baseSHA: {} f:batchPipelineActivity: {} f:build: {} f:buildLogsUrl: {} f:completedTimestamp: {} f:context: {} f:gitBranch: {} f:gitOwner: {} f:gitRepository: {} f:gitUrl: {} f:message: {} f:pipeline: {} f:startedTimestamp: {} f:status: {} f:steps: {} manager: jx-build-controller operation: Update time: "2026-09-01T05:26:55Z" name: greencapitaltrade-destiny-main-207 namespace: jx resourceVersion: "314298704" uid: 27004f4b-e36d-4fba-b463-db85151533e8 spec: baseSHA: a1d96a01b5bc439d28a8dc7462c369969e766851 batchPipelineActivity: {} build: "207" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/destiny/main/207.log completedTimestamp: "2026-09-01T05:26:48Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: destiny gitUrl: https://github.com/greencapitaltrade/destiny.git lastCommitMessage: | fix: report Saafe AA runs that return no data Saafe reports a run that produced nothing through the same webhook as a successful one, with status 'failure'/'error' instead of 'success': DATA_FETCH / "NoDataFound" when the FIP had no data for the accounts the borrower linked, REPORT_GENERATION / error when generation was denied. Both fell straight through the handler, so the step stayed active with nothing recorded on it and the LSP orchestrator could not tell a consent that had definitively produced nothing from one the borrower had simply not finished. It answered "wait" forever. Seen live on application 45: six DATA_FETCH failures, no report, a step still waiting. Record the outcome as last_error on the step and surface it on GET /v1/applications/:id/flow. The step stays active on purpose -- nothing has failed for good, the borrower can link another bank. Marking the stored consent failed is what makes that work: the dispatcher's duplicate-initiate guard already treats such a reference as dead, so the next attempt mints a fresh consent instead of replaying a link that can only come up empty again. The consent a webhook is about is not necessarily the one the step points at -- every retry mints a new one and Saafe keeps reporting on the ones it replaced, which is why application 45's failures matched no step at all. Carry the superseded ids forward on the reference and match them when recording a failure. A late report is deliberately not matched this way: it is a fact about one consent, where an empty result is a fact about the borrower's accounts. Co-Authored-By: Claude Opus 5 (1M context) lastCommitSHA: 13f7e87ca2c94ce57ca6994602f11e042f46cb3b message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/destiny/main releaseNotesURL: https://github.com/greencapitaltrade/destiny/releases/tag/v1.83.1 startedTimestamp: "2026-09-01T05:17:23Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-09-01T05:26:48Z" name: from build pack startedTimestamp: "2026-09-01T05:17:27Z" status: Succeeded steps: - completedTimestamp: "2026-09-01T05:17:53Z" name: Git Clone startedTimestamp: "2026-09-01T05:17:27Z" status: Succeeded - completedTimestamp: "2026-09-01T05:18:04Z" name: Next Version startedTimestamp: "2026-09-01T05:17:54Z" status: Succeeded - completedTimestamp: "2026-09-01T05:18:09Z" name: Jx Variables startedTimestamp: "2026-09-01T05:18:05Z" status: Succeeded - completedTimestamp: "2026-09-01T05:19:56Z" name: Build Npm Install startedTimestamp: "2026-09-01T05:18:10Z" status: Succeeded - completedTimestamp: "2026-09-01T05:22:04Z" name: Build Container Build startedTimestamp: "2026-09-01T05:19:57Z" status: Succeeded - completedTimestamp: "2026-09-01T05:22:18Z" name: Promote Changelog startedTimestamp: "2026-09-01T05:22:05Z" status: Succeeded - completedTimestamp: "2026-09-01T05:22:23Z" name: Promote Helm Release startedTimestamp: "2026-09-01T05:22:18Z" status: Succeeded - completedTimestamp: "2026-09-01T05:24:34Z" name: Promote Jx Promote startedTimestamp: "2026-09-01T05:22:23Z" status: Succeeded - completedTimestamp: "2026-09-01T05:26:48Z" name: Publish Org Kb startedTimestamp: "2026-09-01T05:24:34Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5627 startedTimestamp: "2026-09-01T05:23:47Z" status: Succeeded startedTimestamp: "2026-09-01T05:23:47Z" status: Succeeded - kind: Promote promote: environment: production pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5628 startedTimestamp: "2026-09-01T05:24:31Z" status: Succeeded startedTimestamp: "2026-09-01T05:24:31Z" status: Succeeded version: 1.83.1 status: {}