diff --git a/src/build_sequences.jl b/src/build_sequences.jl
index fa71cb4d8cf7bf2e0b9cd2db4f3fd8f73afaddd3..f6dc6a0e801218382291dc974787b1ce2b19fc7e 100644
--- a/src/build_sequences.jl
+++ b/src/build_sequences.jl
@@ -106,6 +106,9 @@ function optimise_with_cost_func!(jump_model::Model, cost_func, n_attempts)
     nsuccess = 0
     sample_error = Dict{TerminationStatusCode, Any}()
     errors = TerminationStatusCode[]
+    for _ in num_variables(jump_model):number_equality_constraints(jump_model)
+        @variable(jump_model)
+    end
     for attempt in 1:n_attempts
         if attempt != 1
             new_values = rand(length(all_variables(jump_model)))
@@ -122,9 +125,6 @@ function optimise_with_cost_func!(jump_model::Model, cost_func, n_attempts)
                     set_start_value(var, v)
                 end
             end
-            for _ in num_variables(jump_model):number_equality_constraints(jump_model)
-                @variable(jump_model)
-            end
             optimize!(jump_model)
             #println(solution_summary(jump_model))
             if termination_status(jump_model) in (LOCALLY_SOLVED, OPTIMAL)