---
title: "Report a partial bulk-action failure per record"
description: "Verify a prepared bulk action with one allowed and one rejected row reports partial success accurately and permits recovery of the failed item."
canonical_url: "https://vostride.com/agent-library/data-tables/bulk-action-partial-failure.md"
md_url: "https://vostride.com/agent-library/data-tables/bulk-action-partial-failure.md"
content_kind: "recipe"
topic: "data-tables"
---

# Report a partial bulk-action failure per record

Verify a prepared bulk action with one allowed and one rejected row reports partial success accurately and permits recovery of the failed item.

## Risk

A single success banner can hide a rejected row, while a generic failure can obscure a committed change. Test-owned mixed outcomes let the UI be checked against a precise per-record result map.

## Fixtures

- Two test tasks, Writable probe and Locked probe, start Open and are selected for a bulk Done action.
- A prepared fixture rejects changes to Locked probe while permitting Writable probe, with separate recorded outcomes.
- The product contract reports partial completion and retains enough failed-item context for a later retry.

## Steps

1. Select both fixture tasks and verify the bulk selection summary contains exactly their two keys.
2. Apply Done and verify the result summary identifies one success and one failure, naming Locked probe as the failure.
3. Reload the table and verify Writable probe is Done while Locked probe remains Open.
4. Release the prepared lock, select only Locked probe, and retry the status change.
5. Verify both tasks are now Done and the independent action log records one committed change per task rather than repeated mutation of the already successful row.

## Expected results

- The first bulk attempt matches the prepared mixed outcome map exactly.
- The UI distinguishes committed and rejected items with actionable failed-record context.
- The targeted retry changes only the previously failed task after the lock is removed.

## False-pass traps

- A generic completed toast is insufficient when one selected record remained unchanged.
- Retrying the entire selection without checking prior success can mask duplicate side effects in a less reversible action.

## Cleanup

- Remove the lock fixture and restore or delete both test tasks.

## Use with agent-qa

Adapt this test design to your application's acceptance criteria and configured target using the [recipe execution guide](/agent-library/software-factory/turn-a-recipe-into-an-agent-qa-test.md). External fixture setup and non-UI checks require your own supported hooks or test tooling. Validate the authored test, execute it, and inspect the completed evidence; this recipe is not a recorded test result.

## References

- [agent-qa test](/docs/agent-qa/configuration/test.md)
- [agent-qa first test](/docs/agent-qa/guides/first-test.md)
- [agent-qa web testing](/docs/agent-qa/guides/web-testing.md)

- [Data table QA recipes](/agent-library/data-tables.md)
- [Software factory QA library](/agent-library.md)
