# The server was stopped as it came back from an idle pause

The itzg/minecraft-server image froze an idle server, and when it resumed, the server's watchdog took the pause for a frozen tick and shut the server down.

- Code: `autopause_watchdog`
- Severity: fatal
- Category: Configuration
- Server types: Every server type
- Page: https://failures.perland.online/failures/autopause_watchdog/

## Example log

```text
[Autopause loop] Client connected - waiting for disconnect
[14:20:05] [Server thread/INFO]: Alex lost connection: Disconnected
[Autopause loop] No client reconnected - pausing
[2026-11-02T14:25:11+00:00] [Autopause] Pausing Java process
[16:03:42] [Server Watchdog/ERROR]: A single server tick took 5911.34 seconds (should be max 0.05)
[16:03:42] [Server Watchdog/ERROR]: Considering it to be crashed, server will forcibly shutdown.
[Autopause loop] Server was knocked - waiting for clients or timeout
```

## Parameters

| Parameter | Meaning |
| --- | --- |
| `pausedAt` | When the pause began, in UTC (RFC 3339), from the autopause lines of the log. |
| `resumedAt` | When the server ran again, in UTC (RFC 3339) - the autopause daemon's resume line, or the watchdog's own line when that came first. |
| `seconds` | How long the watchdog says the tick lasted, which is about the length of the pause. |
| `plugin` | On Paper and its forks, the plugin the watchdog's thread dump names, if any; the pause, not that plugin, caused the stop. |

## Log lines this page covers

- `No client connected since startup / knocked - pausing`
- `No client reconnected - pausing`
- `Pausing Java process`
- `Server was knocked - waiting for clients or timeout`
- `A single server tick took`
- `The server has stopped responding!`

## What it means

The itzg/minecraft-server Docker image can pause a server while nobody is online (`ENABLE_AUTOPAUSE`). It freezes the Java process completely and lets it run again when a player connects. To Java, nothing happened in between: the tick that was running when the pause began simply lasts as long as the pause.

When the server resumes, its watchdog sees that tick and believes the server has hung for minutes or hours, so it writes a crash report and stops the server. The player who woke it finds it starting over instead of running. The diagnosis reports this as `autopause_watchdog`, rather than `server_watchdog`, when the watchdog fired during a pause or within two minutes after the resume: nothing in the world, the plugins or the mods caused it.

## Why it happens

- **The watchdog was on while autopause was enabled.** Autopause needs the watchdog off: `max-tick-time` set to `-1` in `server.properties` (versions 1.8.1 and later), and on Paper and Spigot their own watchdog turned off too. The image warns about this at startup (see `autopause_watchdog_enabled`).
- **`MAX_TICK_TIME=-1` did not reach `server.properties`.** In some versions of the image, the value its autopause setup chooses is not written into `server.properties`, which keeps `max-tick-time=60000`.
- **Forge and other mod loaders** use the vanilla watchdog, so they stop after a pause longer than a minute just as vanilla does.

## How to fix

1. Start the server again. The world was saved before the pause, so nothing should be lost.
2. Turn the vanilla watchdog off: set `max-tick-time=-1` in `server.properties`, or `MAX_TICK_TIME=-1` with the itzg image, and check after the next start that `server.properties` really holds `-1`.
3. On Paper, Spigot and their forks, also start Java with `-Ddisable.watchdog=true` (with the itzg image, add `disable.watchdog:true` to `JVM_DD_OPTS`).
4. If you cannot turn the watchdogs off, turn autopause off (`ENABLE_AUTOPAUSE=false`) and let the server run or stop instead.

## In Perland

The issue appears in the server's Diagnosis tab with how long the server had been paused. Perland now writes both watchdog settings itself before every start of a server it pauses while idle (`MAX_TICK_TIME` set to `-1`, and `disable.watchdog:true` for Paper's watchdog), so starting the server again is all it takes: a server started now does not stop this way. A `MAX_TICK_TIME` you set yourself in the server's settings is kept, so remove it if you set one.

## References

- [Docker Minecraft Server: Autopause](https://docker-minecraft-server.readthedocs.io/en/latest/misc/autopause-autostop/autopause/)
- [Minecraft Wiki: server.properties (`max-tick-time`)](https://minecraft.wiki/w/Server.properties#max-tick-time)
