GuavaHost
Language & currency
Client AreaGame Panel Toggle navigation
Games All Games
Minecraft JavaMinecraft BedrockMinecraft GeyserRustRuneScape: DragonwildsPalworldValheimValheim + BepInExARK: Survival EvolvedARK: Survival AscendedProject ZomboidEnshroudedDon't Starve TogetherCounter-Strike 2TerrariatModLoaderHytaleMulti-Game ServerDiscord Bot Hosting
Navigation PricingReviewsHelp CenterSupport Company About UsFAQRefer to earnSLATerms of ServicePrivacy Policy
Language & currency
Client AreaGame Panel

Fix "A single server tick took 60.00 seconds" (watchdog crash)

Your server froze solid for a minute, so a safety thread killed it and printed a list of what every thread was doing. That list names your culprit.

6 min read · Updated Oct 21, 2026 · By GuavaHost Team

The console output looks like this:

[Server Watchdog/ERROR]: A single server tick took 60.00 seconds (should be max 0.05)
[Server Watchdog/ERROR]: Considering it to be crashed, server will forcibly shutdown.
[Server Watchdog/ERROR]: ------------------------------
[Server Watchdog/ERROR]: Current Thread: Server thread
[Server Watchdog/ERROR]: 	PID: 23 | Suspended: false | Native: false | State: RUNNABLE
[Server Watchdog/ERROR]: 	Stack:
[Server Watchdog/ERROR]: 		com.example.plugin.ShopListener.onJoin(ShopListener.java:91)

On Paper and its forks you may see "The server has stopped responding!" instead, followed by the same kind of dump. On Vanilla, Fabric and Forge it writes a crash report with Description: Watching Server.

What the watchdog is

A Minecraft server runs the whole game on one thread, in steps called ticks. It aims for 20 ticks a second, so each tick gets 50 milliseconds. If one tick takes longer, everything waits: mobs, redstone, players, chat, the lot.

Because a server stuck in one tick looks alive but accepts nothing, a separate watchdog thread checks on it. If the main thread has not finished a tick within the timeout, the watchdog decides the server has hung and shuts it down so your panel can restart it rather than leaving it frozen forever.

That is why this is not really a crash. It is a diagnosis. Your server did not break, it stopped moving, and the watchdog noticed.

The important thing: 60.00 seconds is not a measure of how slow your server is. It is the timeout. A tick that takes 60 seconds has almost certainly stopped completely rather than being 1200 times slower than it should be.

How to read the thread dump

The dump is the useful part, and it is simpler than it looks.

  1. Find the Current Thread: Server thread section. Everything else in the dump is background noise. The server thread is the one that hung.
  2. Read the stack from the top. The first line is the exact method that was running when the watchdog looked.
  3. Look for a name that is not Minecraft's. Lines starting net.minecraft are the game itself. A line with a plugin's package name, a mod's name, or something like com.example.plugin, is your suspect.
  4. Note the kind of work it was doing. This is the real clue, and the next section covers what each kind means.

So in the example above, ShopListener.onJoin from a plugin called ExampleShop was running when everything stopped. That plugin, and specifically what it does when a player joins, is where to look.

If the top of the stack is pure Minecraft code with no plugin anywhere in it, the problem is usually world generation or a huge amount of something in the world, which the next section also covers.

How to read server logs and crash reports covers stack traces generally, including how to spot the Caused by line and which parts to ignore.

The four usual culprits

Network or database work on the main thread. The classic. A plugin asks a remote service or a database for something and waits for the reply, on the main thread. If that service is slow or unreachable, the main thread sits there and the whole server freezes with it.

Giveaways in the stack: class names containing Socket, URL, HttpURLConnection, jdbc, mysql, or anything to do with reading a response. Plugins that check for updates on startup, verify licences, post to Discord webhooks, or write to a MySQL database are the common offenders.

Usually the fix is a plugin update, because the author eventually moves the work off the main thread. If there is no update, the plugin's config may let you disable the remote call, such as an update check. If you host a database for a plugin, check that it is responsive too.

World generation. Generating new terrain is the heaviest thing a server does. A player flying fast into unexplored chunks, especially on a modded pack with custom world generation, can hold the main thread long enough to trip the watchdog.

Giveaways: ChunkGenerator, NoiseChunk, WorldGenRegion, or a mod's own generation classes at the top of the stack.

The fix is to generate the world in advance, while nobody is waiting, and to cap it with a world border so exploration cannot keep adding chunks forever. World border, spawn and pre-generation covers both halves.

An enormous amount of something. Redstone that updates thousands of blocks in one tick, hopper chains moving items between hundreds of containers, a mob farm with the entity cap pinned, or a chunk full of item frames. Each is cheap on its own, which is how servers end up with far too many.

Giveaways: tickBlockEntities, HopperBlockEntity, redstone, or entity class names.

Cut entity and mob lag on your server names the settings that limit these. Large repeating command blocks belong in the same family and carry the same cost.

A plugin command that does too much. A single / command that counts every block in a region, pastes a large schematic, or iterates every player's data. It is fine on a small server and fatal on a big one. The giveaway is a command class in the stack, with the crash landing right after somebody ran something.

Measure instead of guessing

If the dump is ambiguous, or the freezes are intermittent, profile the server rather than removing plugins one at a time. spark samples the main thread continuously and tells you where the time goes, which turns a guessing game into a report.

Find what is causing lag with spark covers installing and reading it, and Reading TPS and MSPT explains the two numbers that tell you whether your server is healthy between freezes.

A server already running at 12 TPS trips the watchdog far more easily than one at 20, because it has less slack to absorb a stall, so general performance work pays off here too.

About max-tick-time

In server.properties on the Files tab:

max-tick-time=60000

That is the watchdog timeout in milliseconds, 60 seconds by default. Setting it to -1 disables the watchdog entirely.

You will find plenty of advice telling you to do that. Consider what it buys you: instead of a server that restarts when it hangs, you get a server that stays frozen indefinitely, accepting nothing, until you notice and restart it by hand. The hang does not stop happening. You just stop being told.

There is one reasonable case. If your server legitimately does something very long on the main thread at a known moment, such as a one-off world conversion or a very large import, raising the timeout for that one run makes sense. Put it back afterwards.

Otherwise, read the dump and fix the cause. The watchdog is doing you a favour.

Common questions

Does a watchdog crash mean my server is too slow?

Not necessarily. The 60 second figure is the timeout, not a measurement, and a tick that hits it has usually stopped dead rather than merely run slowly. A server with poor TPS does trip the watchdog more easily though, because it has less slack to absorb a stall.

Should I set max-tick-time to -1?

Almost never. It does not stop the hang, it only stops the server shutting down when one happens, so instead of an automatic restart you get a frozen server nobody can join until you notice. Raising it temporarily for a known long operation is the one sensible use.

The stack trace only shows Minecraft classes. What does that mean?

Usually world generation or a very large amount of something in the world, such as redstone, hoppers or entities, rather than a plugin. Check whether the freeze happens when someone explores new terrain, which points at generation, and pre-generate the world if so.

Will adding RAM stop watchdog crashes?

Not on its own, because this is a CPU and main-thread problem rather than a memory one. The exception is a server so short of memory that garbage collection pauses are themselves stalling ticks, which usually shows up as out-of-memory errors in the log too.

Still stuck? Jump into our Discord at discord.gg/GuavaHost and the team will help you out.

  • minecraft
  • java
  • watchdog
  • crash
  • performance
  • troubleshooting

Host a Minecraft Java server From $3.99/mo, with instant setup and DDoS protection.

Still need help? Our team is online 24/7 to answer questions.

Contact support

Related guides

More from Errors & Fixes.