Scorecard troubleshooting and FAQ
See common frequently asked questions and troubleshooting information below.
Cortex offers a wide variety of out-of-the-box integrations compatible with Scorecard rules. Sometimes, a Scorecard may have multiple integration queries with different endpoints, each with its own rate limits. Cortex works to stay within these rate limits, but they can still affect rule results.
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?
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?
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"?
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.
Last updated
Was this helpful?