Actions Troubleshooting
This page documents the known action-related problems and the steps to resolve them. Each section describes a symptom, its cause, and the resolution.
Configuring on the Canvas
A Category Is Greyed Out in the List of Actions Panel
When adding an action, one or more categories appear in the List of Actions panel but cannot be selected.
Cause: The canvas enforces the chaining rules at the panel, so a disabled category means the action cannot be added at that spot:
- Operation is disabled when the Flow already holds 10 Operation actions, the maximum.
- Ticketing is disabled when the Flow's trigger is not Anomaly Detected or Anomaly Status Changed, and also when you are chaining from another action instead of from the trigger itself.
- Every category is disabled when the node you are chaining from is a Notification or Workflow action, which ends its branch.
Resolution:
- For Operation, remove one of the existing Operation actions, or split the pipeline into two Flows chained by an Operation Completed trigger.
- For Ticketing, add the action directly under the trigger, change the trigger to an anomaly one, or clone the Flow and give the clone an anomaly trigger.
- When chaining from a notification or workflow node, chain from the trigger or from an Operation, Anomaly, or Ticketing node instead. Ticketing itself is the exception: it only accepts the trigger as its parent.
The Datastore Is Missing from the Datastore Dropdown
An Operation action's Datastore dropdown does not offer the datastore you want.
Cause: Only initialized datastores are listed, across all five operation types. A source datastore becomes initialized after successful Sync, Profile, and Scan runs, while an enrichment datastore needs only Sync and Profile. Export and Materialize narrow the list further: they only offer source datastores that also have an enrichment destination connected.
Resolution: Run those operations on the datastore first, then reopen the panel. For an Export or a Materialize action, connect an enrichment destination to it as well.
A Saved Change Had No Effect
You edited an action and clicked Save, but the Flow keeps behaving as before.
Cause: Save only stores the edit as an unpublished change, marked with a CHANGED badge on the node. The Flow keeps running its last published version until you publish.
Resolution: Click Publish on the canvas. See How a Flow Works for the full lifecycle.
During Executions
An Action Landed as Skipped
In the execution, an action shows the Skipped state instead of running.
Cause: Its parent did not succeed. A downstream action only starts when its parent succeeds, so a failure upstream marks everything below it as Skipped instead of running it. See How Actions Run.
Resolution: Open the execution, find the failed upstream node, and fix what made it fail. The skipped actions run again on the next execution once the parent succeeds.
An Action Failed
An action shows the Failure state in the execution.
Resolution:
- Open the execution and click the failed node. Its logs describe what went wrong, and the Historical Configuration shows the exact settings the action ran with. See Flow Executions.
- For a ticketing action, check the ticketing integration connection and credentials; the action fails when the integration is unavailable during the execution.
- For a notification or workflow action, confirm the destination still exists and is reachable, then use the panel's test button before republishing.
By Action Category
The Anomaly Action Did Not Touch What You Expected
An Archive or Delete action ran but archived or deleted nothing, or it touched anomalies you expected it to leave alone.
Cause: An anomaly only qualifies when it has been untouched for the full Inactivity Period and matches every filled-in filter (AND logic). Any update or comment restarts the inactivity clock, so a busy anomaly is never touched, and a quiet one that matches the filters always is.
Resolution:
- When nothing was touched, widen the Inactivity Period or relax the filter conditions.
- When too much was touched, narrow the filters by datastore, status, or tag.
- If you are missing
Duplicateamong the archive reasons, that is expected. It requires manually linking a primary anomaly, which an automated action cannot do; pick one of the other reasons.
A Notification Was Not Delivered
The Flow ran, but the message never reached its destination. Pick the tab for your channel.
- The notification does not appear in the bell icon. The trigger may not have activated; verify the Flow is active and the trigger conditions were met, then check the execution history for errors.
- A specific user did not receive it. The user is not an Admin and is not in a team assigned to the event's target datastore. Verify the user's team assignments; Admin users always receive In App notifications.
- Publishing or testing is refused with "The message uses {{...}}, which this notification does not provide". The message names a token the Flow's trigger does not fill, so it would reach the recipient as written. Open the variable menu (type
{{, or press Ctrl+Space) to see the tokens this trigger provides and replace it, or click Reset to defaults to return to a message written for the trigger. - You cannot find a test button. In App has no test. Publish the Flow and check the bell icon after a real event.
- The test notification fails. The email address is invalid; watch for extra spaces or typos, and separate multiple addresses with
;or,. - The email never arrived. Check the recipient's spam or junk folder, and add the sender address to the allowlist.
- Only some recipients received it. Invalid addresses are silently skipped without affecting the others. Verify each address with the Test Notification button.
- Publishing or testing is refused with "The message uses {{...}}, which this notification does not provide". The message names a token the Flow's trigger does not fill, so it would reach the recipient as written. Open the variable menu (type
{{, or press Ctrl+Space) to see the tokens this trigger provides and replace it, or click Reset to defaults to return to a message written for the trigger.
- No channels appear in the dropdown. The Slack integration is not connected. Connect it in Settings > Integrations first.
- The test notification fails. The Qualytics Slack bot has not been invited to the target channel.
- The message is not visible in Slack. It may have been posted to a different channel; verify the selected channel in the configuration.
- The interactive buttons do not work. Slack cannot reach your Qualytics instance to send the action callbacks; the instance URL must be accessible from the internet.
- No channels appear in the dropdown. The Microsoft Teams integration is not connected. Connect it in Settings > Integrations first.
- The test notification fails. Verify the Teams integration is active and the connector has not been removed from the Teams channel.
- The message is not visible in Teams. It may have been posted to a different channel; verify the selected channel in the configuration.
- The Adaptive Card renders badly. The Teams client may be outdated; Adaptive Cards require a minimum client version.
- The test notification fails. The Routing Key is invalid or expired. Verify it in the PagerDuty integration settings; it must match an active Events API v2 integration.
- No incident was created. The PagerDuty service may be disabled, or its event rules are suppressing the event.
- The severity did not behave as expected. PagerDuty's handling of severity depends on the service's urgency configuration; review the service's notification rules.
- The Routing Key Override is not working. The override key must belong to an active PagerDuty service with Events API v2 enabled.
- Nobody was paged. Some services treat Info events as low urgency and do not page on-call. Increase the severity or adjust the service's urgency settings.
- No alert arrived, and the execution logs report a 400 from PagerDuty. The rendered Summary went past PagerDuty's 1024-character limit, so the event was refused and no incident was opened. Shorten the field and remove tokens that carry no length limit, such as
{{anomaly_message}}. Test Notification fills tokens with short sample values, so a passing test proves only that the fixed text fits; a summary that still carries an unbounded token can pass the test and be refused on the next real run.
The Workflow Endpoint Is Not Responding as Expected
A Webhook, HTTP Action, or n8n action cannot reach its destination, or the destination cannot use what it received. Note that Test Workflow is offered on the Webhook and the HTTP Action only; an n8n action has no test button.
Resolution:
- When Test Workflow fails, check the URL's protocol, domain, and path, and confirm the Auth Type, Username, and Secret match what the endpoint expects.
- When the endpoint receives calls it cannot trust, set the n8n Webhook Secret (sent as the
x-qualytics-secretrequest header) or use the HTTP Action's authentication, and validate it on the receiving side. - When fields are missing from the payload, that is by design. The
datastore,operation, andtarget_linkfields are only sent when the trigger provides them, and the context lists arrive empty when the event carries nothing for them. See Payload Structure.
Tickets Are Not Behaving as Expected
Tickets are not being created, not moving to the expected status, or too many are being opened.
Resolution:
- When the action failed during the execution, check the ticketing integration connection and credentials, then review the execution's logs.
- When tickets are not moving, confirm the Anomaly Status Changed trigger filters the right status and the Target Ticket Status matches a status that exists in the tracker.
- When too many tickets are being created, set a minimum Anomaly Severity (Min) and narrow the datastores on the trigger, so each ticket is worth triaging.
Limitations
| Limitation | Detail |
|---|---|
| 10 Operation actions per Flow | The Operation category is disabled once the cap is reached; the other categories are not capped. |
| Notifications and Workflow end their branch | No action can be chained after them; use sibling branches instead. |
| Ticketing needs an anomaly trigger and the trigger as its parent | The category is only selectable with Anomaly Detected or Anomaly Status Changed, and only directly under the trigger. |
| No cap on notifications sent | An event-based trigger runs once per matching event, so an unfiltered trigger can flood a channel. Narrow the trigger's filters. |
| Initialized datastores only | Operation actions only offer datastores that have completed Sync, Profile, and Scan at least once. Export and Materialize also require a connected enrichment destination. |
| In App recipients are rule-based | Delivery follows the Admin role and the target object's teams; there is no per-user selection. |
| In App cannot be tested | The channel has no test path, so its settings panel offers no Test Notification button. |