As mentioned above SLSQP handles internally bounds and they must be passed to the minimizer in the correct form:

```
pars = [getattr(model_copy, name) for name in model_copy.param_names]
bounds = [par.bounds for par in pars if par.fixed != True and par.tied == False]
bounds = np.asarray(bounds)
    for i in bounds:
        if i[0] is None:
            i[0] = DEFAULT_MIN_BOUND
        if i[1] is None:
            i[1] = DEFAULT_MAX_BOUND
  
```