Common Pitfalls¶
Manual And Manual Version Differ¶
Symptom:
- a control, node, parameter, or workflow in the manual is absent or renamed;
- a saved workflow opens differently.
Fix:
- compare the VIPP version badge with the manual's version selector;
- use the numbered manual matching the plugin;
- recreate a copy of an alpha workflow and compare it with known sample outputs. Schema-1/2 files cannot be migrated by changing the JSON version.
Wrong Channel¶
Symptom:
- segmentation finds objects in the wrong signal;
- colocalization metrics are meaningless;
- measurement intensity looks too low or too high.
Check:
Split Channelsoutput labels;- channel names and colors;
- selected
Extract Channelindex; - RGB images versus true multichannel fluorescence arrays.
2D Versus 3D Processing¶
Symptom:
- objects are connected through z when they should not be;
- skeletons break unexpectedly;
- counts differ between slice and volume interpretation.
Check:
- spatial processing setting;
- axes shown in metadata;
- whether the input is
YX,ZYX,CZYX, orTCZYX.
A 3D Batch Says TIFF Axes Are QYX¶
Symptom:
- Preview or Run stops because an ordinary TIFF reports
QYX, while the workflow needs aZYXvolume.
Fix:
- review that source's Image stack choice;
- keep Stack planes are depth slices (Z stack) only if the TIFF pages really are depth slices;
- otherwise choose Use the file's labels unchanged and correct the workflow or source metadata deliberately;
- do not use
Reorder Axesto rename Q to Z—it moves pixels instead; and - verify the physical Z spacing separately, because interpreting Q as Z does not create calibration.
Missing Or Wrong Pixel Size¶
Symptom:
- physical area, volume, length, or surface values are wrong;
- anisotropic z-stack projections look distorted;
- skeleton length in physical units is not meaningful.
Fix:
- use
Set Pixel Size / Units; - inspect metadata before measurement;
- confirm z-step separately from x/y pixel size.
Mask Versus Labels¶
Symptom:
- object measurements fail or produce unexpected rows;
- labels are merged or renumbered unexpectedly;
- table joins do not match objects.
Check:
- masks are foreground/background;
- labels are integer object IDs;
Label Connected Componentshas been run before object measurement;Relabel Sequentialis only used when compact IDs are desired.
Blind Pipeline Transfer¶
Symptom:
- a workflow tuned on one dataset oversegments or undersegments another;
- noise becomes objects;
- total object count changes by orders of magnitude.
Fix:
- inspect intermediate outputs on every new dataset family;
- retune thresholds and cleanup nodes;
- compare masks and labels before trusting measurements.
Manual Nodes Not Updating¶
Symptom:
- table looks stale after upstream changes.
Fix:
- select the node and click
Recalculate; - use toolbar
Calculate all; - enable
Auto Recalculateonly if the node is fast enough.
Source Does Not Change The Workflow¶
Symptom:
- changing a layer in napari does not visibly change the graph output;
- the status still reports that the graph updated from the old sample or file.
Check:
- select the graph's
Image Sourcenode; - inspect whether
Sourceis set tonapari layer,sample, orfile path; - if
Sourceisnapari layer, choose the desired layer in the node inspector; - if
Sourceissampleorfile path, change the sample or file path there.
File Opens With Wrong Axes Or Scale¶
Symptom:
- z appears as time or channel;
- physical measurements are implausible;
- a reader opens the wrong series.
Fix:
- inspect source metadata and acquisition records;
- select the intended series/store group;
- use
Reorder AxesorSet Pixel Size / Unitsonly with known values; - reproduce the issue with a non-sensitive minimal file before reporting it.
For an ND2 file, compare the reported ordered shape/axes with the
reader/acquisition record and move every available T, Z, and C slider. Each
control should change the corresponding content in both napari and the linked
VIPP preview. VIPP trusts the reader's ordered dimensions only when their labels
and sizes exactly match the array; otherwise it falls back conservatively. Do
not use Reorder Axes as a blind visual repair. If controls remain absent or
move the wrong content, report a minimal non-sensitive file plus reader and VIPP
versions.
Auto, Prefer GPU, Or Custom Still Shows CPU¶
For Auto, CPU can mean that no reviewed GPU default is eligible, that a completed timing pair selected CPU, or that accelerated-only history triggered the one-time same-surface CPU exploration run. With no compatible history, Auto uses reviewed defaults. Once both observations exist, a later matching run uses acceleration only if it clears the 1.20x/20-ms gate. Interactive, batch, and registry-lifecycle timing surfaces are never mixed. Auto never silently benchmarks multiple implementations. Use Prefer GPU when every reviewed eligible accelerator should run regardless of speed. Use Custom and apply a reviewed provider or Find fastest pipeline… when you need per-node control or a measured assignment.
For Prefer GPU, CPU means that no reviewed accelerator passed every gate for that exact call. Read the explained dtype, parameter, shape, dependency, environment, or memory reason. Prefer GPU does not cast inputs, alter parameters, use developer-hidden providers, or waive scientific admission to increase the GPU count.
For Custom, CPU can still be the only scientifically admitted result for the exact dtype, parameters, shape, memory, provider, or environment, or it can be an amber visible fallback from a forced GPU choice. Read the node badge and decision reason, then run Compute setup and memory…. The standard CUDA extra includes every current reviewed provider, including background processing and basic measurements. Do not add an old private provider wheel when one of those nodes remains on CPU; read its exact workload or scientific gate instead. See the Windows NVIDIA GPU guide and choose and verify compute.
Optimizer Progress Appears Stationary¶
The current-operation bar advances only at truthful checkpoints. A monolithic CPU/GPU library call can stay at one percentage until it returns. Cancelling is also cooperative at those boundaries. If the time limit is reached, read which comparisons completed and remain: budget exhaustion means the search is incomplete, not that the current assignment was proved optimal. Exact completed records can be reused on retry.
Source Changed But VIPP Keeps The Earlier Revision¶
Symptom:
- a file was overwritten in place, but the graph still shows the verified earlier bytes; or
- calculation reports that a source revision changed.
Fix:
- this is the stable-source contract, not an implicit reload failure;
- finish/archive the current revision or select Refresh to accept the new file/layer state deliberately;
- preview a batch again after any source change.
Same Shape But Inputs Are Rejected¶
Symptom:
- a multi-image, mask/image, or image/PSF node reports incompatible grids even though array shapes match.
Check semantic axes, scale, units, and origin. Equal shape does not prove physical alignment. Register/resample explicitly with a justified method; do not remove calibration merely to bypass the safety check.
Batch Plan Became Stale¶
Symptom:
- Run refreshes the preview and stops; or
- representative navigation remains available but the plan is labelled stale.
The graph, setup, sources, destinations, output declarations, or collision state changed since review. Inspect the new full plan, navigate representatives again when relevant, then run only after the fresh preflight is acceptable.
Exported Workflow Is Not A Complete Archive¶
Symptom:
- another computer cannot find source files;
- exported Python will not run under a different VIPP version;
- batch pairing cannot be reconstructed from workflow JSON alone.
Fix:
- read the workflow and export contract;
- share an environment and input manifest with the workflow;
- preserve
vipp_batch_config.json, the workflow companion, finalized manifests/archives, sidecars, exclusions, and output checksums.