Why does a rule show an error instead of passing or failing?
Why does a rule show an error instead of passing or failing?
Cortex displays the error next to the failing rule on the affected entity, so you can tell a rate limit apart from a real failure.
Will a rate-limited rule sort itself out, or do I need to do something?
Will a rate-limited rule sort itself out, or do I need to do something?
For most integrations, yes—it’ll sort itself out. Cortex retries a rate-limited rule up to five (5) times, backing off between attempts.
Can a rate limit lower an entity's score?
Can a rate limit lower an entity's score?
If every retry hits a rate limit, Cortex falls back to the rule’s last known score, so a temporary outage on a third-party API won’t drop an entity’s level. The same fallback applies to 5xx errors from upstream APIs and to unexpected Cortex-side errors. A brand-new rule has no previous score to fall back on, so it fails and displays a 429 error.
Why does my rule fail with 'Could not apply average to non-numeric and non-duration element'?
Why does my rule fail with 'Could not apply average to non-numeric and non-duration element'?
This error means an aggregation function was applied to a list of records instead of a list of numbers.
For example,
customMetrics() returns a list of data points that each have a value field and a timestamp field, so average() can’t read them as numbers. Use map() to extract the numeric field first:customMetrics(key="error-rate", lookback=duration("P30D")).map((m) => m.value).average()A related error, “Cannot take average of empty list,” means the lookback window in the query contains no data points. Learn more in Querying custom metric data with CQL.