# XH-H01: The server was stuck: no frame for seconds (/docs/xhlds/codes/xh-h01)

On the console:

```text
[XH-H01] Server stuck for 10 s in hangtest.amxx (commands); report xhlds/crashes/<id>.dmp; restart at 60 s
```

**Printed:** when the server finished no frame for [`xhlds_hang_report`](/docs/xhlds/settings#xhlds_hang_report) seconds (Linux), then when it runs again or is ended (`Server running again after 23 s stuck ...`, `Server still stuck after 60 s ...; ending the process to restart it ...`).

The server finished no frame for [`xhlds_hang_report`](/docs/xhlds/settings#xhlds_hang_report) seconds (10 by default; 6 times that while a map loads or the server starts): it was stuck, and every player's game froze. The usual cause is a plugin that does not return: an endless loop, or a very long one (a big file, a database query that waits, a loop over every entity or player many times). The server wrote a crash report from where it was stuck; the line names the AMX Mod X plugin that was running (or else the module, e.g. `cs.so+0x1a2b`) and what the frame was doing (`commands`, `read_packets`, `physics`, `map_load`, ...). On hostsrc's crash service a hang counts as a crash (signal `HANG`). "location unknown: the main thread did not take the signal" means the place could not be found (the report has the other threads); "no report (...)" says why there is none.

If it comes back, a second line says "Server running again after N s stuck"; the report is kept. If it is still stuck after [`xhlds_hang_restart`](/docs/xhlds/settings#xhlds_hang_restart) seconds (60 by default, 3 times that in a map load), the server ends itself ("ending the process to restart it", exit status 124) and `hlds_run` or the panel starts it again, as after a crash (see XH-H03 for when it does not). Quitting the server is never counted.

**Is it a problem?** Yes: everyone on the server froze for that long.

**What to do:**

- Look at the plugin the line names: update it, or take it out of `plugins.ini` and watch whether the hangs stop. Without a plugin, the module in the line (`pc_module=` in the report) says whose code it was.
- The report (`xhlds/crashes/<id>.txt` and `.dmp`) is uploaded like a crash report; send it to us if not.
- [`xhlds_hang_report 0`](/docs/xhlds/settings#xhlds_hang_report) turns the watchdog off; [`xhlds_hang_restart 0`](/docs/xhlds/settings#xhlds_hang_restart) reports a hang but never ends the server.

## On the server [#on-the-server]

[`xhlds_explain XH-H01`](/docs/xhlds/commands#xhlds_explain) prints this explanation on the server console, also over rcon.
