Copy as Markdown[Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fcoralogix.com%2Fdocs%2Fuser-guides%2Fcustom-dashboards%2Ftutorials%2Fwidget-states.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fcoralogix.com%2Fdocs%2Fuser-guides%2Fcustom-dashboards%2Ftutorials%2Fwidget-states.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)

# Widget states

A widget on a custom dashboard doesn't only show data. Between the moment you open a dashboard and the moment a chart appears, the widget reports what it's doing, and if something goes wrong it says so in place rather than rendering an empty chart. This page covers each state, what causes it, and what to do next.

## What you need[​](#what-you-need "Direct link to What you need")

* A saved dashboard with at least one widget
* The `team-dashboards:Read` [permission](https://coralogix.com/docs/user-guides/custom-dashboards/permissions.md)

## The states[​](#the-states "Direct link to The states")

| State             | What you see                                                                                                            | What it means                                                                                                            |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Loading**       | A skeleton placeholder in the widget body                                                                               | The query is running.                                                                                                    |
| **Loaded**        | The chart, table, or value                                                                                              | The query returned data.                                                                                                 |
| **No data**       | **No data found**, with the text *No results for the selected time range. Adjust the time range or query and try again* | The query ran successfully and matched nothing.                                                                          |
| **Error**         | A message in the widget body, and a red border on the widget card                                                       | The query failed.                                                                                                        |
| **Warning**       | A message in the widget body, and a yellow border on the widget card                                                    | The query returned something, but with a caveat worth reading.                                                           |
| **Cancelled**     | A prompt to reload                                                                                                      | Loading was stopped before it finished, either by you selecting **Cancel Refresh** or by leaving the dashboard mid-load. |
| **Load required** | A **Load** button instead of the chart                                                                                  | The widget is waiting for you to ask for the data.                                                                       |

The border colors let you scan a large dashboard without reading every widget: **red means a widget failed**, and yellow means a widget needs attention but is not broken. A widget that loaded normally has no colored border.

## No data is not an error[​](#no-data-is-not-an-error "Direct link to No data is not an error")

**No data found** means the query was valid and the pipeline answered with an empty result. Nothing is wrong with the widget. The usual causes are a time range that doesn't cover the data, a filter or variable narrowing the result to nothing, or the underlying data genuinely not existing yet.

Start with the time range, since it's the most common cause and the cheapest to test. Widen it, and if data appears, narrow back until you find the boundary.

## Errors and warnings[​](#errors-and-warnings "Direct link to Errors and warnings")

An error means the query could not be answered: a syntax error in a [DataPrime](https://coralogix.com/docs/dataprime/introduction/welcome-to-the-dataprime-reference.md) query, a field that doesn't exist, or a service that failed to respond. The widget shows the reason it was given, so read the message before changing the query.

To investigate, open the widget in edit mode. The query is visible and editable there for logs, metrics, spans, and DataPrime, along with its filters and functions, so you can correct it and see the result without leaving the dashboard.

A warning means the widget has data to show but something about the result deserves a second look, so the chart renders and the message stays visible above it.

Note

An error or a warning is never hidden behind the **Load** button. Once a widget has failed, loading it again won't help, so Coralogix keeps the message and the colored border visible rather than replacing them with a Load prompt.

## Reloading keeps the previous result on screen[​](#reloading-keeps-the-previous-result-on-screen "Direct link to Reloading keeps the previous result on screen")

When a widget reloads, whether from [auto-refresh](https://coralogix.com/docs/user-guides/custom-dashboards/tutorials/auto-refresh.md), a time range change, or a manual refresh, it keeps showing the previous result while the new query runs, instead of collapsing back to a skeleton.

This matters on a dashboard you're watching: the numbers stay readable through a refresh, and a widget that briefly flickers to a skeleton is a widget loading for the first time, not one refreshing.

## Cancelled loads[​](#cancelled-loads "Direct link to Cancelled loads")

Selecting **Cancel Refresh** while a widget is loading stops that query and leaves the widget in the cancelled state, with a yellow border and a prompt to reload. Nothing is lost. Reload the widget when you want the data.

Cancelling is useful on a heavy query you started by accident, or when you've changed the time range and no longer care about the result in flight.

## Widgets that wait for a Load button[​](#widgets-that-wait-for-a-load-button "Direct link to Widgets that wait for a Load button")

Some widgets don't query automatically. Instead of a chart, they show a **Load** button, and the query runs when you select it. This keeps an expensive query from running every time someone opens the dashboard.

See [Performance mode](https://coralogix.com/docs/user-guides/custom-dashboards/tutorials/performance-mode.md) for how Coralogix decides which queries to defer.

## Next steps[​](#next-steps "Direct link to Next steps")

* Tune what a widget queries in the [Query builder](https://coralogix.com/docs/user-guides/custom-dashboards/tutorials/query-builder.md).
* Compare several queries in one widget with [multi-query](https://coralogix.com/docs/user-guides/custom-dashboards/tutorials/multiple-queries-in-custom-dashboards.md).
