Calls skipping agents in a queue

Hello all,
I am having an issue where calls will randomly not ring agent’s phones. This seems to be new behaviour since we moved from FreePBX 15 to 17.
We are using Queue Plus and penalties to create a cascading effect where calls should flow to people higher up the food chain in this particular department.
The desired result is
Ring receptionist x310 20 seconds > ring supervisor x306 20 seconds > ring manager x340 20 seconds > go to failover (voicemail box)
What is actually happening is that randomly calls will just skip agents (sometimes all agents) and go straight to the failover, even when all phones are idle.

I am seeing entries in the call trace about app_queue.c: Nobody picked up in 0 ms before it hops to the next agent in line. No idea if that is relevant to what is going on here but 0ms doesn’t seem like a lot of time for the receptionist to be able to answer the call to me.

Call log example
https://pastebin.freepbx.org/view/df135ae4

Happy to post any config files that you need to see as long as you can tell me where to find them.

Hi first make sure that extensions are online sometimes queue dont even ring when asterisk see no extension is online make sure with pjsip show endpoints or core show hints make sure that skip busy agents=no try dialing queue directly with queue number and test if ringing.

Yes, extensions are online during this process.
We have skip busy agents set to yes as that is a request however as the extensions are not busy they should not be being skipped.

I don’t recall but I believe possibly I was having some odd behaviour with the cascading penalty and skip busy being set to no, but I am happy to change it to see if it makes a difference.