I don’t own a multi-channel, but I did see something that looks interesting in the code (not familiar with the codebase and haven’t worked with C much):
Could be a red herring but the function channel_has_args looks kind of like it might be doing the same work as if(!arg) for single-channel. Again this could be totally wrong but IF that were the case, then I’d expect that adding to the if statement could potentially help catch this? Like
if (! arg) || (! channel_has_args(cfg.channel_mode) .
Also in following the code style the actual statement would also need to include an IFDEF for multi-channel-config but maybe not necessary for you test locally?