Init not using my initial values and seems to be defaulting to 0

More progress. Here a similar problem is found with dimension errors and the recommendation was to wrap parameter values in an array.

fit2 <- brm(bf(Response ~ top - ((top-bottom)*exp(-rate * Time)), top + bottom + rate ~ 1, nl = TRUE),
            data = SynthData, 
            prior = prior1,
            chains = 1,
            cores = 4,
            seed = 1,
            init = function(){list(b_top=array(14),
                                   b_bottom=array(8), 
                                   b_rate=array(0.22))}
)

And this worked! The parameters are starting out at 14, 8, 0.22. Problem is that I dont really understand why this is working now. Anyone have any simple explanations and general rules I could apply to prevent these sorts of errors in the future?

Thanks
Thomas