The error message seems relatively helpful here. You can see that the problem has to do with missing values in the object and when I scan through your residuals I see you have a missing value as the first value. One option would be to remove that missing value prior to using acf().
There is another option, though, which takes a bit more sleuthing to figure out if you don't know that functions sometimes have this option yet. If you take a look at the help page for the acf() function, you'll see there is an argument called na.action. The default, shown in the "Usage" section, is na.fail.
acf(x, lag.max = NULL,
type = c("correlation", "covariance", "partial"),
plot = TRUE, na.action = na.fail, demean = TRUE, ...)
You got the error message because this is set to na.fail.
In the "Arguments" section of the documentation, this argument is described as
na.action function to be called to handle missing values. na.pass can be used.
This doesn't describe exactly what na.pass does, but you would find a bit more information by going to ?na.pass.
All of this is to say that another option for using acf() with missing values is to use na.pass for your na.action instead of the default. 
acf(rainseriesforecasts2$residuals, lag.max = 20, na.action = na.pass)