Serdar,

Have you tried to clean variables before calling new ds_select_domain(), 
that are using by dispatcher module failover?

Like 
https://kamailio.org/docs/modules/5.3.x/modules/dispatcher.html#dispatcher.p.xavp_dst 
and so on?

But as I got, you're saying, that calling ds_select_domain() with 
different setid's in a case of fail, not really fails, but using "old" 
available destinations from previous attempt?

Regards,
Igor

Igor, also thanks for your interest.

Hello,

delete the xavps based on the names you set via modparams xavp_dst and
xavp_ctx.

Cheers,
Daniel
I remove xavp value using "xavp_rm("_dsdst_")", i supposed that my problem was solved

but in my other tests, i recognised that xavp_rm removed the first index of "xavp(_dsdst_)" not all previous destinations(indexes).

after researching, i found a post at https://lists.kamailio.org/pipermail/sr-users/2020-May/109192.html

and i removed all ellements of list as below,

if(defined $xavp(_dsdst_)) {
        while($xavp(_dsdst_[0]) != $null) {
            xlog("L_INFO", "--- Loaded Dispatchers --- Grp : $xavp(_dsdst_[0]=>grp)\n");
            xlog("L_INFO", "--- Loaded Dispatchers --- Uri : $xavp(_dsdst_[0]=>uri)\n");
            $xavp(_dsdst_[0]) = $null;
        }
}

it worked but i am not sure it is a best solution. Is there another simple way to delete all indexes of xavp?

Best regards,

Serdar