Demux summarize broken after upgrading to 2025.10
Hi everyone,
I hope this is the correct forum to post. I am experiencing some unexpected behaviour after upgrading QIIME from 2025.7 to 2025.10. The summarize command from the demux plugin does no longer work in a QIIME 2025.10 environment but works perfectly fine for 2025.7.
Here is the command I run:
qiime demux summarize \
--i-data $data_dir/raw/demux_paired_end.qza \
--o-visualization $data_dir/processed/demux_paired_end.qzv \
--verbose
where data_dir points to my data directory and demux_paired_end.qza contains paired-end reads.
qiime tools peek $data_dir/raw/demux_paired_end.qza
UUID: 3e48be7c-af27-4f87-b7d2-2726aca3b65d
Type: SampleData[PairedEndSequencesWithQuality]
Data format: SingleLanePerSamplePairedEndFastqDirFmt
You can download the data as follows:
wget -O "$data_dir/raw/demux_paired_end.qza" \
"https://polybox.ethz.ch/index.php/s/zi5ZBrBwcn7SYof/download/demux-paired-end.qza"
Error message
This is the error message that I receive when running the command in the 2025.10 environment:
/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/emperor/__init__.py:9: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
import pkg_resources
Traceback (most recent call last):
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/qiime2/plugin/model/directory_format.py", line 187, in validate
self._validate_(level)
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/q2_types/per_sample_sequences/_formats.py", line 371, in _validate_
validate_paired_ends_equal_record_count(
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/q2_types/per_sample_sequences/_util.py", line 394, in validate_paired_ends_equal_record_count
raise ValidationError(
qiime2.core.exceptions.ValidationError: A pair of paired-end files were found not to have the same number of records. /var/folders/t2/68ltn7ds36523gbx2tkkj4zh0000gn/T/qiime2/<username>/data/3e48be7c-af27-4f87-b7d2-2726aca3b65d/data/sample_5_S771_L001_R1_001.fastq.gz has 112892 records. /var/folders/t2/68ltn7ds36523gbx2tkkj4zh0000gn/T/qiime2/<username>/data/3e48be7c-af27-4f87-b7d2-2726aca3b65d/data/sample_51_S266_L001_R1_001.fastq.gz has 14284 records.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/q2cli/commands.py", line 567, in __call__
results = self._execute_action(
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/q2cli/commands.py", line 639, in _execute_action
results = action(**arguments)
File "<decorator-gen-927>", line 2, in summarize
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/qiime2/sdk/action.py", line 262, in bound_callable
self.signature.transform_and_add_callable_args_to_prov(
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/qiime2/core/type/signature.py", line 401, in transform_and_add_callable_args_to_prov
self._transform_and_add_input_to_prov(
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/qiime2/core/type/signature.py", line 434, in _transform_and_add_input_to_prov
transformed_input = _input._view(spec.view_type, recorder)
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/qiime2/sdk/result.py", line 747, in _view
result = transformation(self._archiver.data_dir)
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/qiime2/core/transform.py", line 68, in transformation
self.validate(view, level=validate_level)
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/qiime2/core/transform.py", line 143, in validate
view.validate(level)
File "/Users/<username>/miniconda3/envs/microbEvolve/lib/python3.10/site-packages/qiime2/plugin/model/directory_format.py", line 189, in validate
raise ValidationError(
qiime2.core.exceptions.ValidationError: /var/folders/t2/68ltn7ds36523gbx2tkkj4zh0000gn/T/qiime2/<username>/data/3e48be7c-af27-4f87-b7d2-2726aca3b65d/data is not a(n) SingleLanePerSamplePairedEndFastqDirFmt:
A pair of paired-end files were found not to have the same number of records. /var/folders/t2/68ltn7ds36523gbx2tkkj4zh0000gn/T/qiime2/<username>/data/3e48be7c-af27-4f87-b7d2-2726aca3b65d/data/sample_5_S771_L001_R1_001.fastq.gz has 112892 records. /var/folders/t2/68ltn7ds36523gbx2tkkj4zh0000gn/T/qiime2/<username>/data/3e48be7c-af27-4f87-b7d2-2726aca3b65d/data/sample_51_S266_L001_R1_001.fastq.gz has 14284 records.
Plugin error from demux:
/var/folders/t2/68ltn7ds36523gbx2tkkj4zh0000gn/T/qiime2/<username>/data/3e48be7c-af27-4f87-b7d2-2726aca3b65d/data is not a(n) SingleLanePerSamplePairedEndFastqDirFmt:
A pair of paired-end files were found not to have the same number of records. /var/folders/t2/68ltn7ds36523gbx2tkkj4zh0000gn/T/qiime2/<username>/data/3e48be7c-af27-4f87-b7d2-2726aca3b65d/data/sample_5_S771_L001_R1_001.fastq.gz has 112892 records. /var/folders/t2/68ltn7ds36523gbx2tkkj4zh0000gn/T/qiime2/<username>/data/3e48be7c-af27-4f87-b7d2-2726aca3b65d/data/sample_51_S266_L001_R1_001.fastq.gz has 14284 records.
See above for debug info.
In the 2025.7 environment, the command runs fine and produces the expected visualization.
/Users/<username>/miniconda3/envs/microbEvolve07/lib/python3.10/site-packages/q2_demux/_summarize/_visualizer.py:11: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
import pkg_resources
Saved Visualization to: ../data/processed/demux_paired_end.qzv
For both versions, I have installed QIIME in a conda environment using the installation instructions for Apple Silicon from the amplicon docs.
QIIME 2025.7
$ qiime info
System versions
Python version: 3.10.14
QIIME 2 release: 2025.7
QIIME 2 version: 2025.7.0
q2cli version: 2025.7.0
Installed plugins
alignment: 2025.7.0
composition: 2025.7.0
cutadapt: 2025.7.0
dada2: 2025.7.0
deblur: 2025.7.0
demux: 2025.7.0
diversity: 2025.7.0
diversity-lib: 2025.7.0
emperor: 2025.7.0
feature-classifier: 2025.7.0
feature-table: 2025.7.0
fragment-insertion: 2025.7.0
longitudinal: 2025.7.0
metadata: 2025.7.0
phylogeny: 2025.7.0
quality-control: 2025.7.0
quality-filter: 2025.7.0
rescript: 2025.7.0
sample-classifier: 2025.7.0
stats: 2025.7.0
taxa: 2025.7.0
types: 2025.7.0
vizard: 0.0.1.dev0
vsearch: 2025.7.0
QIIME 2025.10
$ qiime info
System versions
Python version: 3.10.14
QIIME 2 release: 2025.10
QIIME 2 version: 2025.10.1
q2cli version: 2025.10.1
Installed plugins
alignment: 2025.10.0
boots: 2025.10.1
composition: 2025.10.0
cutadapt: 2025.10.0
dada2: 2025.10.0
deblur: 2025.10.0
demux: 2025.10.0
diversity: 2025.10.1
diversity-lib: 2025.10.0
emperor: 2025.10.0
feature-classifier: 2025.10.0
feature-table: 2025.10.0
fondue: 2025.10.0
fragment-insertion: 2025.10.0
kmerizer: 2025.10.1
longitudinal: 2025.10.0
metadata: 2025.10.0
phylogeny: 2025.10.0
quality-control: 2025.10.0
quality-filter: 2025.10.0
rescript: 2025.10.1
sample-classifier: 2025.10.0
stats: 2025.10.0
taxa: 2025.10.0
types: 2025.10.0
vizard: 2025.10.0
vsearch: 2025.10.0