Commit 1358653
[Security Solution] Show more alert action error info in error toasts (#269592)
## Summary
Addresses #269533.
When a user without sufficient index write access performs alert actions
in Security Solution, the error toast appeared with a blank body instead
of the actual reason from Elasticsearch.
### Cause
Several hooks called `addError(error.message, { title })`, passing a
plain string instead of the error object. `useAppToasts.addError` runs
its input through `errorToErrorStackAdapter`, which unpacks a Kibana
`HttpFetchError` (including the nested Elasticsearch reason string) only
when given the full error object. Passing `error.message` bypasses that
logic, leaving the toast body blank on permission errors.
### Fix
Pass `error` directly to `addError` in the following hooks:
- `useSetAlertAssignees` (`use_set_alert_assignees.tsx`) -- assign alert
- `useSetAlertTags` (`use_set_alert_tags.tsx`) -- bulk tag update
- `onAlertStatusUpdateFailure` in `useBulkActionItems`,
`useAlertActions`, and `useGroupTakeActionItems` -- open / close /
acknowledge
- `useCasesFromAlerts` (`use_cases_from_alerts.tsx`) -- cases fetch on
flyout open (fires automatically; users without Cases read access would
have seen a blank toast on every flyout open)
## Steps to reproduce
1. Create a role with `view_index_metadata`, `write`, and `manage` on
`.alerts-security.alerts-{space}`, but without `create_doc` / `index` /
`all`.
2. Log in as a user assigned that role and navigate to Security ->
Alerts.
3. Attempt any of the following:
- Assign an alert to a user
- Add or remove a tag via bulk actions
- Change workflow status (open / close / acknowledge)
- Open an alert flyout (if the user also lacks Cases read access)
4. Observe the error toast: the body is blank even though the browser
console shows a detailed authorization error.
**Expected:** the toast body shows the Elasticsearch authorization
reason (e.g. "action [indices:data/write/bulk[s]] is unauthorized ...").
Example:
<kbd>
<img width="655" height="599" alt="Screenshot 2026-05-15 at 4 42 24 PM"
src="https://github.com/user-attachments/assets/08fa0524-62f8-41e7-980b-25bbd1e49960"
/>
</kbd>
<kbd>
<img width="857" height="859" alt="Screenshot 2026-05-15 at 4 42 33 PM"
src="https://github.com/user-attachments/assets/d95635c5-f55d-44a7-8509-bb5a0960a74f"
/>
</kbd>
**Actual (before fix):** the toast body is blank.
Example:
<kbd>
<img width="372" height="205" alt="Screenshot 2026-05-15 at 4 44 53 PM"
src="https://github.com/user-attachments/assets/95ba3628-78a8-424c-9af4-0f61e9a2330e"
/>
</kbd>
<kbd>
<img width="857" height="859" alt="Screenshot 2026-05-15 at 4 44 34 PM"
src="https://github.com/user-attachments/assets/74f0e932-92a0-4188-9a43-e69ed28636bb"
/>
</kbd>
## Release note
Error toasts for failed alert actions (assign, tag, open, close,
acknowledge) now show the full error message from Elasticsearch instead
of a blank body.
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
(cherry picked from commit cbabddd)1 parent 64f0cef commit 1358653
6 files changed
Lines changed: 8 additions & 8 deletions
File tree
- x-pack/solutions/security/plugins/security_solution/public
- common/components/toolbar/bulk_actions
- detections
- containers/detection_engine/alerts
- hooks
- alerts_table
- trigger_actions_alert_table
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
| 108 | + | |
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | | - | |
| 43 | + | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | | - | |
| 44 | + | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
93 | | - | |
| 93 | + | |
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
| |||
0 commit comments