Skip to content

Bulk task endpoint emits no per-task change events (subsumed by #29038) #29041

Description

@manerow

Updated 2026-07-28. Still reproducible on main, but it is no longer its own unit of work:
the fix chosen for the lifecycle sub-issue (#29038) covers it. Recommend closing this once
#29038 lands, keeping only its regression test.

Summary

POST /v1/tasks/bulk (TaskResource.bulkOperation, TaskResource.java:1421) transitions N tasks
in one HTTP request and emits no change events.

Verified live on a clean main deploy: a bulk Cancel of one task moved it to Cancelled and
added zero rows to change_event, while an equivalent single-task POST /v1/tasks/{id}/close
added one.

Why it is subsumed

Bulk delegates to the same handler as the single-task endpoints:

TaskResource.bulkOperation -> processBulkOperation -> repository.resolveTaskWithWorkflow / closeTask
                                                   -> TaskWorkflowHandler.resolveTask / closeTask

#29038 moves change-event emission out of TaskResource and into
TaskWorkflowHandler.resolveTask / closeTask / reopenTask, precisely because the single-valued
X-OpenMetadata-Change response header cannot express N events. Once emission happens at the
handler, every task processed in a bulk call emits its own event with no bulk-specific code.

What to carry over into #29038

  • Integration test: bulk operation over 2 or more tasks produces one change_event row per task.
  • Integration test: a subscription on task fires once per affected task.

Metadata

Metadata

Assignees

Type

Projects

Status
Done ✅

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions