> For the complete documentation index, see [llms.txt](https://docs.nexthink.com/platform/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nexthink.com/platform/references/database-information-and-organization/application-not-responding.md).

# Application not responding

Applications that don't respond to user input have a negative impact on the overall experience of employees and thus are an important part of the Digital Experience Score (DEX). Refer to [DEX score](/platform/user-guide/dex-score.md) documentation for more information.

Collector reports unresponsive applications on both Windows and macOS, with a different detection technique on each platform. This article describes the techniques and the metrics they produce.

### Application not responding on Windows <a href="#applicationnotresponding-applicationnotrespondingonwindows" id="applicationnotresponding-applicationnotrespondingonwindows"></a>

On Windows, Collector reports unresponsive applications through two metrics: freeze events and number of freezes.

| Application | Freeze events                                          | Number of freezes                                                              |
| ----------- | ------------------------------------------------------ | ------------------------------------------------------------------------------ |
| NQL source  | `execution.freezes` table                              | `number_of_freezes` field of `execution.events`                                |
| Reports     | One event per freeze, with its duration and end reason | One count per application and 5-minute period, capped at one freeze per period |
| Scope       | The application in focus on an unlocked device         | Any process, including background processes                                    |
| Sampling    | Every few seconds                                      | Every 30 to 45 seconds                                                         |

The two metrics do not map one to one. Freeze events count each incident separately. An application that freezes and recovers repeatedly, for example while waiting on a slow network call, produces several events where `number_of_freezes` reports one. In turn, `number_of_freezes` also counts background processes that deliberately stop responding to save resources. Microsoft Teams and other applications based on `msedgewebview2` do this by design. A higher freeze event count is therefore expected, and does not mean that a single freeze is counted twice.

#### Freeze events

A freeze event represents a single freeze incident of the application the employee is actively using. Collector detects it as follows:

* Collector starts a freeze after **3 seconds** of continuous unresponsiveness in the foreground, applying the same focus logic as the [focus time metric](/platform/references/database-information-and-organization/focus-time-metric.md). Background and suspended processes never start a freeze event.
* Losing focus does not end the freeze. The duration keeps accumulating when the employee switches to another window.
* Collector confirms the recovery after 4.5 seconds of continuous responsiveness, so a short sequence of freeze and recovery counts as one incident. The shortest duration reported is therefore around 6 seconds.
* Collector caps the duration at 25 minutes, so that a freeze which never resolves still gets reported with a bounded value.
* Collector records freeze events independently of the [privacy settings](/platform/configuring_nexthink/configuring-your-platform/privacy-policy-and-settings.md).

The `end_reason` field tells you how the freeze ended:

* `recovered`: The application became responsive again on its own.
* `crashed`: The application terminated with a crash.
* `terminated`: The employee closed the application while it was frozen.
* `session_ended`: The session locked or ended before the freeze resolved.
* `null`: Collector could not determine the reason, for example when the freeze reached the 25-minute cap.

{% hint style="info" %}
Freeze events require Collector 26.6 or later, and Collector reports them on Windows devices only.
{% endhint %}

#### Number of freezes

Collector checks the responsiveness of applications by sending messages to their open windows, through the Windows API `IsHungAppWindow`. According to [Microsoft documentation](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-ishungappwindow), an application is considered not responsive when:

* It is not waiting for input.
* It is not performing startup processing.
* Has not called the `PeekMessage` function within an internal 5-second timeout period.

Collector samples this API every 30 seconds and reports a freeze only when the application fails to check for new user input within the 5-second window. Application freezes can have multiple causes, such as excessive processing on the main UI thread. This detection works independently of application logging, which usually captures only severe failures.

{% hint style="warning" %}
The `number_of_freezes` field remains unchanged for backward compatibility and continues to feed the Freezes component of the DEX score. Nexthink plans to deprecate it and recommends using `execution.freezes` instead.
{% endhint %}

### Application not responding on macOS <a href="#applicationnotresponding-applicationnotrespondingonmacos" id="applicationnotresponding-applicationnotrespondingonmacos"></a>

On macOS, Collector relies on the operating system logs to know whether an application is not responding. macOS reports unresponsiveness only after the employee has forced the application to quit.

## <br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.nexthink.com/platform/references/database-information-and-organization/application-not-responding.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
