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: 33afa70daf98fe3c4056a481ba410ef0 creationTimestamp: "2026-09-02T16:41:12Z" generation: 8 labels: branch: main build: "212" context: release created-by-lighthouse: "true" event-GUID: fe575884-a6ec-11f1-8c5f-541d9e7e31f0 lighthouse.jenkins-x.io/baseSHA: 2e2fb3e19c1b971e621dafebcc4acbe2f78181e3 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1788367272732" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: apitaltrade-destiny-main-release-v4xfk lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: 2e2fb3e19c1b971e621dafebcc4acbe2f78181e3 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-9vccx-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-02T16:44:00Z" - 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-02T16:46:55Z" name: greencapitaltrade-destiny-main-212 namespace: jx resourceVersion: "318089839" uid: fd53c710-7ed3-4a51-8318-e87b1690bf49 spec: baseSHA: 2e2fb3e19c1b971e621dafebcc4acbe2f78181e3 batchPipelineActivity: {} build: "212" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/destiny/main/212.log completedTimestamp: "2026-09-02T16:46:50Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: destiny gitUrl: https://github.com/greencapitaltrade/destiny.git lastCommitMessage: | refactor: raise GcError instead of hand-rolling error responses Routes set ctx.status and sometimes ctx.body by hand, so an error's shape depended on which route you hit: some returned a bare status with no body at all, some a { code }, some a { code } plus loose extra fields. A caller had nothing dependable to key on, and a bare 404 said nothing about what was missing. Fifty-five sites across thirteen route files now throw GcError, which the Koa middleware renders as { code, details? } with the given status. Codes that already existed are kept verbatim; the bare ones are named after what was actually missing — application_not_found, document_not_found, pan_not_found, aadhaar_not_found, credentials_not_found, user_id_required. Loose extra fields become `details`, which GcError now serializes. Two places are deliberately left alone: - routes/agreements.js returns agreementSignErrorResponse(), a structured contract the LSP parses — { agreementId, digioDocumentId, signUrl, stepStatus, code }. GcError would replace that shape and break it. - routes/callbacks.js is being rewritten in PRs 1404 and 1405, which convert their own handlers there. routes/flows.js carried a comment saying its error was kept manual because GcError dropped the `value` payload. That stopped being true when GcError started emitting `details`, so it converts with the errors list intact. requireOrg() in integration_credentials.js used to return null for the caller to check; it throws now, so the five `if (orgId === null) return;` guards are dead and removed. Co-Authored-By: Claude Opus 5 (1M context) lastCommitSHA: ed39753b21fe3d55944d7cf7e7756f26f68bd8bd message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/destiny/main releaseNotesURL: https://github.com/greencapitaltrade/destiny/releases/tag/v1.83.6 startedTimestamp: "2026-09-02T16:41:12Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-09-02T16:46:50Z" name: from build pack startedTimestamp: "2026-09-02T16:41:16Z" status: Succeeded steps: - completedTimestamp: "2026-09-02T16:41:30Z" name: Git Clone startedTimestamp: "2026-09-02T16:41:16Z" status: Succeeded - completedTimestamp: "2026-09-02T16:41:37Z" name: Next Version startedTimestamp: "2026-09-02T16:41:30Z" status: Succeeded - completedTimestamp: "2026-09-02T16:41:41Z" name: Jx Variables startedTimestamp: "2026-09-02T16:41:38Z" status: Succeeded - completedTimestamp: "2026-09-02T16:42:41Z" name: Build Npm Install startedTimestamp: "2026-09-02T16:41:42Z" status: Succeeded - completedTimestamp: "2026-09-02T16:43:51Z" name: Build Container Build startedTimestamp: "2026-09-02T16:42:41Z" status: Succeeded - completedTimestamp: "2026-09-02T16:44:00Z" name: Promote Changelog startedTimestamp: "2026-09-02T16:43:51Z" status: Succeeded - completedTimestamp: "2026-09-02T16:44:04Z" name: Promote Helm Release startedTimestamp: "2026-09-02T16:44:00Z" status: Succeeded - completedTimestamp: "2026-09-02T16:45:33Z" name: Promote Jx Promote startedTimestamp: "2026-09-02T16:44:04Z" status: Succeeded - completedTimestamp: "2026-09-02T16:46:50Z" name: Publish Org Kb startedTimestamp: "2026-09-02T16:45:34Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5643 startedTimestamp: "2026-09-02T16:44:58Z" status: Succeeded startedTimestamp: "2026-09-02T16:44:58Z" status: Succeeded - kind: Promote promote: environment: production pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5644 startedTimestamp: "2026-09-02T16:45:30Z" status: Succeeded startedTimestamp: "2026-09-02T16:45:30Z" status: Succeeded version: 1.83.6 status: {}