Skip to content

[Bug][Rootly] Incidents without service tags are silently dropped during collection #8891

@brianfeucht

Description

@brianfeucht

Search before asking

  • I had searched in the issues and found no similar issues.

What happened

Description:

The Rootly plugin collects incidents by filtering per-service using filter[service_ids]. However, in practice many (or all) Rootly incidents are created without service associations. This causes three compounding issues that silently discard valid incidents:

Bug 1 — Collector always sends service filter
buildIncidentsQuery always appends filter[service_ids]= to every API request. The Rootly API returns 0 results for incidents with no service tag, so untagged incidents are never stored in the raw table.

Bug 2 — ValidateTaskOptions rejects empty ServiceId
There is no way to trigger a global (unfiltered) collection because an empty serviceId returns a validation error: "not enough info for Rootly execution".

Bug 3 — Extractor service-membership guard drops incidents when ServiceId is empty
In extractRootlyIncident, there is a safety check that filters out any incident whose service list doesn't contain the current ServiceId. When ServiceId == "", containsServiceId always returns false, so any incident that does have service relationships attached gets dropped as a false positive.

Impact:

  • Any incident not tagged with a specific service is permanently lost — never reaches the tool layer or domain layer

What do you expect to happen

Allow ServiceId to be empty (opt-in global collection)
Skip filter[service_ids] in buildIncidentsQuery when ServiceId is empty
Skip the extractor service-membership guard when collecting globally

How to reproduce

  1. Create a Rootly incident without associating it to any service
  2. Run the Rootly collector for any service scope
  3. The incident does not appear in _tool_rootly_incidents or the incidents domain table

Anything else

No response

Version

v1.0.3-beta12

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    component/pluginsThis issue or PR relates to pluginspriority/highThis issue is very importantseverity/p1This bug affects functionality or significantly affect uxtype/bugThis issue is a bug

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions