My Worker Processes are Stalling!

Uploads or exports stuck on the on-screen log with no progress? Background jobs not completing? This guide walks through how to check and recover the worker layers involved. This guide covers Docker deployments, where each worker runs as its own container managed with docker compose: app (puma), resque (background job execution), and solidqueue (the recurring/scheduled job scheduler). Running Dradis Pro on a VM instead? See the VM version of this guide.

After triggering an upload or export, the on-screen log should update continuously until Worker process completed appears. If it stalls with no progress, work through the sections below in order.

1. Container Status

Docker Compose supervises each service as its own container. Run the following from your Dradis installation directory (where compose.yaml lives):

docker compose ps

Every service should show a state of Up (or running). If a service is missing, restarting, or shows Exit, jump to the Resque, Solid Queue, or Puma sections below for the specific service to restart, or restart the whole stack with:

docker compose restart

The app, resque, and solidqueue containers all wait on db and redis reporting healthy before starting — if either of those is down, none of the worker containers will come up until it's fixed:

docker compose ps db redis

docker compose logs [service-name] shows a container's entrypoint/stdout output, not the application's own log files — see the Resque log files and Puma log files sections below for how to reach those.


2. Resque Workers

Resque workers handle background jobs — uploads, exports, migrations, and project tasks. A stuck resque process will cause uploads and exports to stall on the progress log even though the rest of the stack reports as up.

Quick restart

Resque runs in its own container, so a targeted restart is a single command:

docker compose restart resque

Retry the upload or export in the web app.

Resque log files

If the restarts above resolve the stall but the problem keeps coming back, the resque logs are the place to look for the underlying cause. They live inside the resque container's filesystem, under /dradispro/log/ — this is a different path from what docker compose logs resque shows you, which is only the container's stdout. List what's there, then view the file you need:

docker exec resque ls /dradispro/log/
docker exec resque cat /dradispro/log/resque.log

Any recurring errors or exceptions in these logs are worth capturing and sending to the Support team.


3. Solid Queue (recurring & scheduled jobs)

The solidqueue container doesn't process uploads or exports - it only schedules Dradis's periodic housekeeping jobs (digest emails, cleanup of expired tokens, old logs, and generated report files) on their configured intervals, then hands each one off to resque to actually run. If solidqueue is down, those recurring jobs simply stop firing on schedule; it won't affect uploads, exports, or anything else a user triggers directly in the web app.

Check its status and restart it if needed:

docker compose ps solidqueue
docker compose restart solidqueue

Its logs live at /dradispro/log/ inside the container, same layout as resque:

docker exec solidqueue cat /dradispro/log/production.log

4. Puma

Puma is the application server that serves Dradis. While resque handles background jobs, Puma needs to be healthy for the web interface to respond at all. A down Puma process can manifest as a 404 from nginx or a completely unresponsive UI even when the rest of the stack reports a clean status.

To restart the web server, run:

docker compose restart app

Puma log files

If it's failing to start or keeps going down, the log files inside the app container will usually tell you why — this is a different path from what docker compose logs app shows you, which is only the container's stdout. List what's there, then view the file you need:

docker exec app ls /dradispro/log/
docker exec app cat /dradispro/log/puma.err.log

Contact Us

Still stuck after working through the steps above? Gather the Support bundle from /setup/support in your instance and send it to our Support team — we'll give you a hand. If you aren't able to reach the endpoint above to download the support bundle, you can get it from a terminal session with:

docker exec app dp-support-bundle -o > /tmp/support-bundle.tar.gz

Seven Strategies To Differentiate Your Cybersecurity Consultancy

You don't need to reinvent the wheel to stand out from other cybersecurity consultancies. Often, it's about doing the simple things better, and clearly communicating what sets you apart.

  • Tell your story better
  • Improve your testimonials and case studies
  • Build strategic partnerships

Loading form...

Your email is kept private. We don't do the spam thing.