- Gate a deployment before the expensive run with
bioptimus verify— one synthetic tile, checked against the model contract. - Self-diagnose the environment with
snapshot(), or run a singleprobe_*for a fast, targeted check. Most issues below map to one probe — the same evidence a support bundle carries.
Server not responding? Check /ping first
Server not responding? Check /ping first
Before constructing a If this raises
Backbone (or an Inference pipeline), confirm the on-premise server is reachable:ConnectionError / connection refused or times out, nothing is serving at that URL:- Not started — launch the container, mapping port 8080, then wait for models to load. See On-premise deployment:
503 {"status": "loading"}— models are still initialising; wait and retry.- Wrong URL/port —
base_url(and the pipeline’sapi_url) must be the server’s host and port, with no trailing/ping.
/ping: confirm the endpoint is InService and that endpoint_name / region_name are correct.CUDA not available, or inference falls back to CPU
CUDA not available, or inference falls back to CPU
The SDK loaded but the GPU is not being used. Check what the runtime actually sees:
cuda_availableisFalseon a GPU host — the NVIDIA driver is usually too old for the CUDA build PyTorch ships.probe_gpureports the driver and CUDA build versions side by side even when CUDA is down.- A device loads but kernels fail at launch — its compute capability is missing from PyTorch’s compiled build (common after a wheel reinstall);
probe_gpuflags that device. - Running on a CPU-only box — move to a GPU instance. This surfaces as
GPU_UNAVAILABLE.
Model loads but fails on the first tile
Model loads but fails on the first tile
A model that loads and then fails at inference (
MODEL_FORWARD_FAILED) is almost always an architecture or dependency mismatch, not a problem with the slide. Two probes pinpoint it:.pt2architecture mismatch — the AOTInductor artifact is compiled for a specific GPU/CPU architecture.probe_pt2_compatreportscompiled_forversus the host and thereasonfor any mismatch.- Dependency drift — upgrading a pinned dependency past its supported ceiling (for example
zarr>=3or a too-newtorch) breaks the compiled artifacts silently.probe_dependenciesreports each conflict as{name, installed, required}.
ImportError: a backend needs an optional extra
ImportError: a backend needs an optional extra
Some backends ship as optional extras to keep the base install light. Using one without its extra raises
BioptimusImportError (a real ImportError subclass) tagged DEPENDENCY_MISSING, with the exact command in its remediation:OpenSlide and tiffslide readers are bundled by default. If an import still fails after installing,
probe_host() catches the “installed it but it’s not found” case — check executable and in_venv to confirm you are running the interpreter you installed into.A slide won't open
A slide won't open
When a WSI fails to open, first check which readers actually imported on this host:A backend reporting
available: False carries the import reason — usually a missing native library. Install the matching extra (above) or convert the slide to a format one of the available backends reads..pt2 fails to load, or the temp directory fills up
.pt2 fails to load, or the temp directory fills up
Loading a Point
.pt2 extracts it into the system temp directory; if that directory is full or read-only, extraction fails (DISK_FULL). probe_disk reports the headroom and flags both failure modes:TMPDIR at a writable volume with room, and clear leaked aotinductor extraction directories if the count keeps climbing.A run looks stuck near the end
A run looks stuck near the end
The writer is finalizing outputs (thumbnail, tissue mask, metadata) — this is expected and brief. A run that stays stuck with an idle GPU points to I/O, not the model; see the Inference Server’s Troubleshooting guide.
Server responding fine but throughput lower than expected, or a run that looks stalled? That’s covered in the Inference Server’s Troubleshooting guide. For what to change to get more throughput, see Performance tuning.
Need to share details with support? See Logging and Support bundles.

