diff --git a/src/LarvaDatasets.jl b/src/LarvaDatasets.jl
index 1c1291682409dff8154b2078cac0d432400d24be..8188429153f1f25c3387aee6a23d671981116271 100644
--- a/src/LarvaDatasets.jl
+++ b/src/LarvaDatasets.jl
@@ -540,7 +540,7 @@ Known issue: ASCII-compatible string attributes are ASCII encoded and deserializ
 by the *h5py* Python library.
 """
 function write_larva_dataset_hdf5(output_dir::String,
-        input_data::Union{String, <:AbstractVector},
+        input_data::Union{Repository, String, <:AbstractVector},
         window_length::Int=20;
         labels::Union{Nothing, <:AbstractVector{String}}=nothing,
         labelpointers::Union{Nothing, <:AbstractDict{String, Vector{Tuple{Int, Int, Int}}}}=nothing,
@@ -619,7 +619,7 @@ function new_write_larva_dataset_hdf5(output_dir, input_data;
     @assert !isnothing(frameinterval)
     window = TimeWindow(window_length * frameinterval, round(Int, 1 / frameinterval);
                         maggotuba_compatibility=past_future_extensions)
-    index = if startswith(balancing_strategy, "max:")
+    index = if !isnothing(balancing_strategy) && startswith(balancing_strategy, "max:")
         # `includeall` not supported
         maxcount = parse(Int, balancing_strategy[5:end])
         capacitysampling(labels, maxcount; seed=seed)