Artifactory Overloading Troubleshooting

Diagnose Artifactory overload from busy worker-thread logs, map activities to root causes, interpret HTTP 429 responses, and decide when to enable Load Healer Reactive mode.

Use this page when Artifactory becomes unresponsive, request latency spikes, clients receive timeouts or HTTP 429 (Too Many Requests), or logs show that all worker threads are busy.

Overload conditions usually mean the Tomcat worker thread pool is exhausted. A single activity, such as one user, one package type, or a dependency waiting on JFrog Xray or JFrog Curation, can monopolize threads and block other traffic.

Before you change capacity settings, identify which activity is saturating the node. Load Healer Automatic Load Protection observes and, when enabled in Reactive mode, can throttle the offending activity so other requests continue.

Prerequisites

Confirm Load Healer Is Running

On self-managed deployments, Load Healer starts in Simulation mode by default and does not block requests. During startup, verify the following log entry:

Load Healer mode auto-defaulted to SIMULATION (on-prem deployment)

On JFrog SaaS deployments, Load Healer is enabled by default.

Identify the Activity Causing the Overload

When all worker threads are busy, Artifactory logs every activity consuming more than 20% of the available threads.

all threads are busy (300 out of 300), activities that take above 20% of threads: {...}

These log entries identify which activity saturated the node.

Common activities and what they usually indicate:

Activity in the logWhat to investigate
limitUserOne user or token is generating excessive concurrency. Reduce client parallelism.
limitModule or limitEndPointOne API or package endpoint is dominating traffic. Check CI jobs or scripts targeting that path.
parallelUploadPreRepoKeyConcurrent uploads to one repository are too high.
parallelDownloadUploadPerPackageTypeDownload and upload load for one package type is saturating threads.
xrayBlockUnscanned or xrayDownloadBlockedRequests are waiting on JFrog Xray. Check Xray health, scan backlog, and blocking policies.
curationCachedPackageStatusRequests are waiting on JFrog Curation approval for cached artifacts.
qrlLowPriorityRequestsDatabase-bound low-priority work is holding threads. Review database load and connection pool sizing.
limitActivityGeneral upload and download load is high across the node.

Troubleshoot Recurring Overload Events

If the same activity repeatedly appears during overload events:

  1. Investigate the workload or dependency causing the overload.
  2. Reduce excessive client concurrency where possible, especially when limitUser appears.
  3. Investigate external dependencies such as JFrog Xray or JFrog Curation when related activities appear.
  4. Consider enabling Reactive mode so Load Healer can protect the instance during future outages. See Enable Reactive Mode.

Verify Reactive Mode During an Outage

After you enable Reactive mode and restart Artifactory, the next time the node enters an OUTAGE (All tomcat working threads are busy and the tomcat connection queue is full) state, look for these log entries.

Starting reactive mode management virtual thread
Setting activities to reactive mode: {<list of activities>}

By default, Reactive mode remains active for approximately 20 minutes before the affected activities automatically return to their previous mode.

Interpret HTTP 429 Responses

When Load Healer intervenes in Reactive mode, only the activity contributing to the overload receives an HTTP 429 (Too Many Requests) response. Other requests continue normally.

  • If clients retry HTTP 429 with exponential backoff, temporary spikes usually complete successfully.
  • If clients do not retry, builds or automation may fail during high load.
  • Sudden bursts of highly concurrent requests are more likely to trigger protection than a gradual increase in concurrency.

Do not treat every HTTP 429 as a capacity defect. First confirm which activity was throttled, then decide whether to fix the workload, dependency, or client retry behavior before increasing system capacity.

Related Topics


Did this page help you?