Asterisk start call and send BYE if no codec translation path

Hello,

I have Asterisk 16.30.0 with Speex codec enabled but without Speex codec installed. Also I have two clients. On client A only speex is enabled and on client B only OPUS is enabled.

When I call from client A then server send INVITE with list of codecs to client B with included OPUS codec in list.
Then client B accept a call with only OPUS codec in list.

After that server send ACK to client B then send BYE to client B, a Decline to client A. And print next in logs:

[2024-11-28 08:58:58] WARNING[22961]: channel.c:5777 set_format: Unable to find a codec translation path: (opus) -> (speex32)
[2024-11-28 08:58:58] WARNING[22961]: channel.c:5777 set_format: Unable to find a codec translation path: (speex32) -> (opus)

Is this behavior ok? Why asterisk doesn’t answer with some error to client B? Are there some way to not start a call on client B in case if there are not codec translation path and if call start on client B is a bit expensive?