---
title: DiffDock troubleshooting
description: Fix DiffDock runs — ligand sanitization, poor poses at low sampling, stalls on large complexes, and confidence scores that only compare within one run.
---

Use this page to diagnose the failures you hit while running [DiffDock](/docs/diffdock) — ligand parsing failures, poor pose quality, stalled jobs, and confidence scores that look off. Most problems trace back to input preparation rather than the model itself.

## Common issues and fixes

This guide addresses common issues when running DiffDock through the .bloom* platform. Most issues stem from input preparation rather than the model itself.

## Ligand parsing failures

- Sanitize ligands and remove query atoms; malformed valences are the usual
  culprit.
- Provide 3D coordinates for macrocycles or highly flexible ligands to reduce
  failures.
- Check for uncommon elements; only common drug-like atom types are supported.

## Poor pose quality

- Increase `inference_steps` or request more poses (`samples_per_complex`, up
  to 40) to widen the search.
- Note that some targets are inherently difficult for any docking method. Consider the top 5 poses rather than only the top 1.
- For highly flexible ligands with many rotatable bonds, DiffDock's torsional diffusion may require more sampling; increase `samples_per_complex` toward the 40-pose maximum.

## Slow or stalled jobs

- Keep proteins small and omit unrelated chains; large complexes increase
  runtime.
- Reduce `samples_per_complex` when batching many ligands.
- Split very large ligand sets into multiple submissions to avoid timeouts.

## Unexpected confidence scores

- DiffDock's confidence model predicts geometric accuracy (RMSD &lt; 2 Angstroms), not binding affinity. Low confidence does not mean weak binding.
- Confidence scores are relative within a run; do not compare scores across different proteins or ligands.
- Very low confidence across all poses often indicates the ligand is incompatible with the protein's surface geometry, or the input structure needs cleanup.

## Still stuck?

- Capture the job ID, protein filename, and ligand identifiers.
- Note any custom parameters (`samples_per_complex`, `inference_steps`) and
  share with support.

## Read next
