---
title: "JVM thread dump"
method: GET
path: "/api/v1/maintenance/_threads"
tags: ["Maintenance"]
---

# JVM thread dump

`GET /api/v1/maintenance/_threads`

Returns a full JVM thread dump as structured JSON, including state, priority, stack traces, locked monitors/synchronizers, and deadlock detection. Use hideSystem=true (default) to filter to dotCMS threads only.

## Query parameters

- `hideSystem` boolean

## Response `200`

Thread dump captured

- ResponseEntityThreadDumpView
  - `errors` ErrorEntity[]
    - `errorCode` string
    - `message` string
    - `fieldName` string
  - `entity` ThreadDumpView
    - `serverId` string, required — Identifier of the cluster node that produced this dump
    - `serverName` string — Human-readable name of the cluster node, when configured
    - `timestamp` string, required — Wall-clock timestamp when the dump was captured
    - `vmInfo` string, required — JVM identification: vm name and runtime version
    - `threadCount` integer, required — Number of threads included in the response (after filtering)
    - `deadlockedCount` integer, required — Total number of deadlocked threads detected JVM-wide
    - `threads` ThreadDescriptorView[], required — Per-thread descriptors
      - `name` string, required — Thread name
      - `id` integer, required — JVM-assigned thread id
      - `daemon` boolean, required — Whether this is a daemon thread
      - `priority` integer, required — Thread priority (1-10)
      - `state` string, required — Thread state name (e.g. RUNNABLE, WAITING, TIMED_WAITING, BLOCKED)
      - `deadlocked` boolean, required — Whether this thread is part of a detected deadlock cycle
      - `stackTrace` string[], required — Stack trace as a list of formatted frames
      - `lockedMonitors` string[], required — Locked monitors held by this thread, formatted as 'ClassName at depth N'
      - `lockedSynchronizers` string[], required — Locked ownable synchronizers held by this thread (LockInfo.toString())
      - `lockInfo` string — String form of the lock the thread is currently waiting on; null if none
      - `lockOwnerName` string — Name of the thread that owns the lock this thread is waiting on; null if none
      - `lockOwnerId` integer — Id of the thread that owns the lock this thread is waiting on; null if none
  - `messages` MessageEntity[]
    - `message` string
  - `i18nMessagesMap` object
  - `permissions` string[]
  - `pagination` Pagination
    - `currentPage` integer
    - `perPage` integer
    - `totalEntries` integer

## Other responses

- `401` — Unauthorized - authentication required
- `403` — Forbidden - CMS Administrator role required

---

[API](https://skmtc.dev/jostens/apis/dotcms-rest-api.md) · [All operations](https://skmtc.dev/jostens/apis/dotcms-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/jostens/dotcms-rest-api/revisions/a088fe9f515c/schema)
