apiVersion: jenkins.io/v1 kind: PipelineActivity metadata: annotations: lighthouse.jenkins-x.io/cloneURI: https://github.com/greencapitaltrade/bifrost.git lighthouse.jenkins-x.io/job: release pipeline.jenkins-x.io/traceID: e139adda6fb2fc1b5408cd0bb00dce5a creationTimestamp: "2026-07-28T12:29:29Z" generation: 7 labels: branch: main build: "154" context: release created-by-lighthouse: "true" event-GUID: f6185030-8a7f-11f1-923f-9bae7e6e18a0 lighthouse.jenkins-x.io/baseSHA: aa3d275e6f473578d4be85179515e60673191351 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1785241769745" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: apitaltrade-bifrost-main-release-lm747 lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: aa3d275e6f473578d4be85179515e60673191351 lighthouse.jenkins-x.io/refs.org: greencapitaltrade lighthouse.jenkins-x.io/refs.repo: bifrost lighthouse.jenkins-x.io/type: postsubmit owner: greencapitaltrade podName: apitaltrade-bifrost-main-release-pkwzj-from-build-pack-pod provider: github repository: bifrost tekton.dev/pipeline: apitaltrade-bifrost-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.22 operation: Update time: "2026-07-28T12:33:55Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:spec: f:completedTimestamp: {} f:status: {} manager: jx-promote-0.6.42 operation: Update time: "2026-07-28T12:35:06Z" - 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:context: {} f:gitBranch: {} f:gitOwner: {} f:gitRepository: {} f:gitUrl: {} f:message: {} f:pipeline: {} f:startedTimestamp: {} f:steps: {} manager: jx-build-controller operation: Update time: "2026-07-28T12:36:00Z" name: greencapitaltrade-bifrost-main-154 namespace: jx resourceVersion: "223369380" uid: 48e579a5-9378-42d2-a31f-1c2369801104 spec: baseSHA: aa3d275e6f473578d4be85179515e60673191351 batchPipelineActivity: {} build: "154" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/bifrost/main/154.log completedTimestamp: "2026-07-28T12:34:40Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: bifrost gitUrl: https://github.com/greencapitaltrade/bifrost.git lastCommitMessage: | fix(asset): publish commands to Kafka only after the transaction commits Closes #413. execute_device_command created the command log row and published to Kafka in the same transaction, before commit. Deadpool's command consumer now reads a command in well under a second (deadpool#170 gave commands their own consumer group), calls validate_execution(log_id), and — with the row still uncommitted — receives 'not_found', treats it as "do not execute" and skips the command permanently. Observed in production: log_id 88 was consumed 0.29s after publish, skipped, and left 'pending' forever: 12:00:01.293 Processing command for device 864540080383862 (log_id: 88) 12:00:01.748 Skipping command execution for log_id 88 (idempotency: not_found): Command log 88 not found The race always existed; it was masked while commands sat minutes behind telemetry in the shared consumer. Defer the publish to a post-commit callback, so the row is always visible before the message exists. The callback runs on its own cursor since the request's transaction is closed by then. Contract change: a broker failure can no longer be reported synchronously as success=False. The command is accepted as 'pending' and the post-commit callback marks the log 'failed' with the broker error — which is also the state the retry path keys off. The existing publish-failure test is updated to assert the new ordering guarantee rather than the old inline behaviour. Co-Authored-By: Claude Opus 4.8 (1M context) lastCommitSHA: 4207992130335703e64c88c130efa07a2f9fab8b message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/bifrost/main releaseNotesURL: https://github.com/greencapitaltrade/bifrost/releases/tag/v6.83.2 startedTimestamp: "2026-07-28T12:29:29Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-07-28T12:34:40Z" name: Release startedTimestamp: "2026-07-28T12:33:40Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/4940 startedTimestamp: "2026-07-28T12:34:40Z" status: Succeeded startedTimestamp: "2026-07-28T12:34:40Z" status: Succeeded - kind: Stage stage: completedTimestamp: "2026-07-28T12:35:52Z" name: from build pack startedTimestamp: "2026-07-28T12:29:40Z" status: Succeeded steps: - completedTimestamp: "2026-07-28T12:30:02Z" name: Git Clone startedTimestamp: "2026-07-28T12:29:40Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:07Z" name: Next Version startedTimestamp: "2026-07-28T12:30:02Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:12Z" name: Jx Variables startedTimestamp: "2026-07-28T12:30:07Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:12Z" name: Setup Npm Nexus startedTimestamp: "2026-07-28T12:30:12Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:15Z" name: Setup Pip Cache startedTimestamp: "2026-07-28T12:30:12Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:16Z" name: Process Config Templates startedTimestamp: "2026-07-28T12:30:16Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:17Z" name: Update Asset Management Version startedTimestamp: "2026-07-28T12:30:17Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:20Z" name: Check Registry startedTimestamp: "2026-07-28T12:30:17Z" status: Succeeded - completedTimestamp: "2026-07-28T12:33:31Z" name: Build Container Build startedTimestamp: "2026-07-28T12:30:20Z" status: Succeeded - completedTimestamp: "2026-07-28T12:33:55Z" name: Promote Changelog startedTimestamp: "2026-07-28T12:33:31Z" status: Succeeded - completedTimestamp: "2026-07-28T12:34:00Z" name: Promote Helm Release startedTimestamp: "2026-07-28T12:33:56Z" status: Succeeded - completedTimestamp: "2026-07-28T12:35:09Z" name: Promote Jx Promote startedTimestamp: "2026-07-28T12:34:00Z" status: Succeeded - completedTimestamp: "2026-07-28T12:35:52Z" name: Publish Org Kb startedTimestamp: "2026-07-28T12:35:10Z" status: Succeeded - kind: Stage stage: completedTimestamp: "2026-07-28T12:35:52Z" name: from build pack startedTimestamp: "2026-07-28T12:29:40Z" status: Succeeded steps: - completedTimestamp: "2026-07-28T12:30:02Z" name: Git Clone startedTimestamp: "2026-07-28T12:29:40Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:07Z" name: Next Version startedTimestamp: "2026-07-28T12:30:02Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:12Z" name: Jx Variables startedTimestamp: "2026-07-28T12:30:07Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:12Z" name: Setup Npm Nexus startedTimestamp: "2026-07-28T12:30:12Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:15Z" name: Setup Pip Cache startedTimestamp: "2026-07-28T12:30:12Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:16Z" name: Process Config Templates startedTimestamp: "2026-07-28T12:30:16Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:17Z" name: Update Asset Management Version startedTimestamp: "2026-07-28T12:30:17Z" status: Succeeded - completedTimestamp: "2026-07-28T12:30:20Z" name: Check Registry startedTimestamp: "2026-07-28T12:30:17Z" status: Succeeded - completedTimestamp: "2026-07-28T12:33:31Z" name: Build Container Build startedTimestamp: "2026-07-28T12:30:20Z" status: Succeeded - completedTimestamp: "2026-07-28T12:33:55Z" name: Promote Changelog startedTimestamp: "2026-07-28T12:33:31Z" status: Succeeded - completedTimestamp: "2026-07-28T12:34:00Z" name: Promote Helm Release startedTimestamp: "2026-07-28T12:33:56Z" status: Succeeded - completedTimestamp: "2026-07-28T12:35:09Z" name: Promote Jx Promote startedTimestamp: "2026-07-28T12:34:00Z" status: Succeeded - completedTimestamp: "2026-07-28T12:35:52Z" name: Publish Org Kb startedTimestamp: "2026-07-28T12:35:10Z" status: Succeeded version: 6.83.2 status: {}