diff --git a/src/LarvaDatasets.jl b/src/LarvaDatasets.jl
index 528f877b1c932dd1c10527df62351178058f24b1..c63d4a07de11bb79804c41d468b83168c92ad939 100644
--- a/src/LarvaDatasets.jl
+++ b/src/LarvaDatasets.jl
@@ -705,6 +705,9 @@ function new_write_larva_dataset_hdf5(output_dir, input_data;
         else
             # ensure labels are ordered as provided in input;
             # see https://gitlab.pasteur.fr/nyx/TaggingBackends/-/issues/24
+            if labels isa AbstractDict
+                labels = collect(keys(labels))
+            end
             h5["labels"] = labels
             h5["label_counts"] = [get(classcounts, Symbol(label), 0) for label in labels]
         end