apiVersion: jenkins.io/v1 kind: PipelineActivity metadata: annotations: lighthouse.jenkins-x.io/cloneURI: https://github.com/greencapitaltrade/ironman.git lighthouse.jenkins-x.io/job: release pipeline.jenkins-x.io/traceID: d387c402593df21b8278715f034a5e64 creationTimestamp: "2026-08-31T14:48:07Z" generation: 8 labels: branch: main build: "60" context: release created-by-lighthouse: "true" event-GUID: dddc2e98-a54a-11f1-930c-c0c84b19eef0 lighthouse.jenkins-x.io/baseSHA: 814f50ec45c369bc241a13f7e5d930f65126f952 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1788187687509" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: apitaltrade-ironman-main-release-5h74g lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: 814f50ec45c369bc241a13f7e5d930f65126f952 lighthouse.jenkins-x.io/refs.org: greencapitaltrade lighthouse.jenkins-x.io/refs.repo: ironman lighthouse.jenkins-x.io/type: postsubmit owner: greencapitaltrade podName: apitaltrade-ironman-main-release-chr2v-from-build-pack-pod provider: github repository: ironman tekton.dev/pipeline: apitaltrade-ironman-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-08-31T14:52:20Z" - 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-08-31T14:57:08Z" name: greencapitaltrade-ironman-main-60 namespace: jx resourceVersion: "312761786" uid: 9dcb849f-6e53-4b3b-85bb-680b04b5886b spec: baseSHA: 814f50ec45c369bc241a13f7e5d930f65126f952 batchPipelineActivity: {} build: "60" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/ironman/main/60.log completedTimestamp: "2026-08-31T14:57:02Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: ironman gitUrl: https://github.com/greencapitaltrade/ironman.git lastCommitMessage: | fix: read NPCI's verdict from Accptd, not the enquiry's error code AU answers a status enquiry with two independent things. `ErrorCode` is the enquiry's own transport status — '000' means "the enquiry succeeded" and says nothing about the mandate. `Accptd` is NPCI's verdict. mapStatus read them as one: if (String(accptd).toLowerCase() === 'true') return 'active'; if (ec === '000' || ec === '0') return 'accepted'; so a reply carrying `Accptd: 'false', ErrorCode: '000'` — a plain refusal — fell through to `accepted`. Production mandate 6 is exactly that: NPCI refused it with ReasonCode 46, "No response received from customer during mandate registration". The next refresh would have marked it accepted, and we would have gone on to collect against a mandate that does not exist. The verdict now comes from Accptd alone, and only once the enquiry itself succeeded: 'true' is active, 'false' is rejected, and 'NULL' — no ruling yet — is pending rather than acceptance. An enquiry that failed reports pending, never a verdict, even if Accptd carries one. refreshStatus had no branch to persist a refusal either, so a rejected mandate sat at form_returned for good. It records it now, with NPCI's own RejectBy/ReasonCode/ReasonDesc rather than the enquiry's ErrorCode '000' and ErrorDesc 'NA', which describe nothing anyone can act on. Two existing tests asserted the old over-claim (Accptd 'NULL' + ErrorCode '000' => accepted) and are corrected: a mandate id is issued either way — the production refusal carried one too — so its presence is not acceptance. Co-Authored-By: Claude Opus 5 (1M context) lastCommitSHA: cb51ce91157f65fc03ccf8387d17467ef73ab250 message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/ironman/main releaseNotesURL: https://github.com/greencapitaltrade/ironman/releases/tag/v2.63.5 startedTimestamp: "2026-08-31T14:48:07Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-08-31T14:57:02Z" name: from build pack startedTimestamp: "2026-08-31T14:48:18Z" status: Succeeded steps: - completedTimestamp: "2026-08-31T14:48:35Z" name: Git Clone startedTimestamp: "2026-08-31T14:48:18Z" status: Succeeded - completedTimestamp: "2026-08-31T14:48:43Z" name: Next Version startedTimestamp: "2026-08-31T14:48:35Z" status: Succeeded - completedTimestamp: "2026-08-31T14:48:49Z" name: Jx Variables startedTimestamp: "2026-08-31T14:48:44Z" status: Succeeded - completedTimestamp: "2026-08-31T14:50:16Z" name: Build Npm Install startedTimestamp: "2026-08-31T14:48:49Z" status: Succeeded - completedTimestamp: "2026-08-31T14:50:20Z" name: Check Registry startedTimestamp: "2026-08-31T14:50:17Z" status: Succeeded - completedTimestamp: "2026-08-31T14:52:08Z" name: Build Container Build startedTimestamp: "2026-08-31T14:50:21Z" status: Succeeded - completedTimestamp: "2026-08-31T14:52:20Z" name: Promote Changelog startedTimestamp: "2026-08-31T14:52:08Z" status: Succeeded - completedTimestamp: "2026-08-31T14:52:27Z" name: Promote Helm Release startedTimestamp: "2026-08-31T14:52:21Z" status: Succeeded - completedTimestamp: "2026-08-31T14:54:50Z" name: Promote Jx Promote startedTimestamp: "2026-08-31T14:52:28Z" status: Succeeded - completedTimestamp: "2026-08-31T14:57:02Z" name: Publish Org Kb startedTimestamp: "2026-08-31T14:54:51Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5625 startedTimestamp: "2026-08-31T14:53:58Z" status: Succeeded startedTimestamp: "2026-08-31T14:53:58Z" status: Succeeded - kind: Promote promote: environment: production pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5626 startedTimestamp: "2026-08-31T14:54:47Z" status: Succeeded startedTimestamp: "2026-08-31T14:54:47Z" status: Succeeded version: 2.63.5 status: {}