User story
As a curator, I want failed background concept merges to appear in the notification center so I know when a merge was rolled back and can investigate or retry it.
Use case
A concept merge runs in the background and OCL rejects one or more writes. The merge is rolled back, but the curator receives no notification and may incorrectly assume the operation is still processing or was successful.
Requirements
Acceptance criteria
More details (collapsible)
Investigation evidence
The notification registry already defines concept_merge.failed as a persistent error event with browser push enabled.
However, the concept merge execution path in apply_concept_merge / run_merge_job updates the merge job and item status but does not call notification_service.record.
Recent examples:
118305 → 118306: rolled back after OCL returned HTTP 400 because a name already existed for the same source and locale.
115801 → 115800: rolled back for the same type of OCL rejection.
The failures are visible in the merge history and ocl_concept_write_logs, but not in the notification center.
User story
As a curator, I want failed background concept merges to appear in the notification center so I know when a merge was rolled back and can investigate or retry it.
Use case
A concept merge runs in the background and OCL rejects one or more writes. The merge is rolled back, but the curator receives no notification and may incorrectly assume the operation is still processing or was successful.
Requirements
concept_merge.failednotification when a background concept merge fails or is rolled back.Acceptance criteria
More details (collapsible)
Investigation evidence
The notification registry already defines
concept_merge.failedas a persistent error event with browser push enabled.However, the concept merge execution path in
apply_concept_merge/run_merge_jobupdates the merge job and item status but does not callnotification_service.record.Recent examples:
118305 → 118306: rolled back after OCL returned HTTP 400 because a name already existed for the same source and locale.115801 → 115800: rolled back for the same type of OCL rejection.The failures are visible in the merge history and
ocl_concept_write_logs, but not in the notification center.