Graylog2 / Graylog2/graylog2-server
Failed event definition save shows an unhelpful "FetchError" toast next to the real error message
- Dominant language
- Java
- Stars
- 8.1k
- Forks
- 1.1k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 217
Description
Whenever saving an event definition is refused, the correct reason is shown in the inline banner, but a second notification appears at the same time carrying no usable information.
### Repro
Any one of these three produces it:
**A. Missing stream**
1. **Alerts > Event Definitions > Create event definition**, give it a title, click **Next**.
2. Condition type **Filter & Aggregation**, Search Query `http_method:POST`, and leave **Streams and Categories** empty.
3. Go to **Summary** and click **Create event definition**.
**B. Invalid tag**
1. As above, but select the Default Stream.
2. On **Additional Details**, add the tag `bad tag`.
3. Go to **Summary** and click **Create event definition**.
**C. Unknown MITRE ID** (needs Illuminate content installed)
1. As above, with the Default Stream selected.
2. On **Additional Details**, add the tactic/technique ID `T9999`.
3. Go to **Summary** and click **Create event definition**.
### Observed
The inline banner is correct and specific in all three cases. At the same time a toast appears in the corner:
> Could not save EventDefinition
> Saving EventDefinition failed with status: FetchError: There was an error fetching a resource: . Additional information: Not available
Note the empty text after "resource:" and the "Not available". The toast names no field and no reason.
### Expected
Either no toast, since the inline banner already explains the problem, or a toast that repeats the actual reason.
Version: Graylog 7.2.0-beta.1
Contributor guide
Research direction
Start by reproducing the event-definition save flow using the missing-stream, invalid-tag, or unknown-MITRE-ID cases, then trace the save error handling and notification path. Done means the specific inline error remains visible and the additional toast is either absent or repeats a useful reason.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100