Kresd crashes with policy configuration and FQDN as router name

No, this is about an API change in kresd 5.2. Just using req.answer isn’t supported anymore.

-        local answer = req.answer
+        local answer = req:ensure_answer()
+        if answer == nil then return nil end

(well, the second line most likely won’t ever be needed in your case, but it’s just cleaner)

EDIT: it’s perhaps unpleasant that ensure_answer didn’t exist until 5.2.0, so you need to apply the change at the right time (or make it all more complicated).