Considering all said by @Craig, I think you need to add an “?” in p.author to avoid “undefined” cases.
Something like:
dv.list(dv.pages('"4 Reference/Books"')
.where(p => p.Type == "Book-Series")
.where(p => p.Author?.path == dv.current().file.path).file.link)
(you need to add at the end what you want from that filtered pages… In the example I added file.link
)