Call Not Ended when 422 Session Timer too small is received from endpoint

I recently set up session timers. I have device A sending an INVITE to Asterisk. If Asterisk sends an INVITE to an endpoint (device B) that requires a higher min-se, a 422 will be received by Asterisk from device B. Asterisk will resend the INVITE to device B with a higher timer and the device B starts ringing. Where I run into issues is if a CANCEL is received by the device A, Asterisk is sending a 487 back to device A (the call looks to be ended on device A), but device B never gets the cancel. This causes device B to keep ringing until some call forward no answer treatment kicks in or someone picks up device B and hangs up the call. I’ve now seen this when device B is a phone and when device B is a trunk to another PBX. I searched around and couldn’t find any help. It seems that his may be slightly related to ASTERISK-14371, but that was closed a while ago.

I’m running Asterisk 1.8.32.2 and I realize support has ended, but can anyone repeat this on a later version? Is this still a bug or should I look into jumping to Asterisk 11 to fix this? As an FYI, I am working around this by bumping my timer settings to a minimum of 1800 seconds as that seems to be the standard on CUCM and Avaya 1100 series phones.

If anyone wants to see traces, I can provide them.

This also happens on 11.17.1 so I’ll bug it with the Asterisk group.