In the example below, I suppose separate_longer_position() should also return NA when the input is NA:
library(tidyr)
df <- data.frame(x = c("ab,cd", NA))
separate_longer_delim(df, x, delim = ",")
#> x
#> 1 ab
#> 2 cd
#> 3 <NA>
separate_longer_position(df, x, width = 2)
#> Error in seq.default(1, max_length, by = width): 'to' must be a finite number