Sound disappears during crossfade with HTML5 audio players on iOS Safari and Chrome

Experiencing very strange behaviour with html5 audio players on ios safari and chrome (probably with others).

I have two players crossfading one to another. Crossfade made with WebAudio api with gain nodes and linearRampToValueAtTime. And it works good every odd number. First ( 1 -> 2) crossfade is perfect and smooth. On second crossfade (2 -> 1) when I’m starting playback of first player sound disappears. timeupdate events continued to be emitted, gain value is 0.5, player volume is 1, currentTime of contexts are valid, before crossfade setValueAtTime is set for both. But no sound. Next crossfade perfect. Next fails. Even while playback is active when I execute in console player1.src = "url"; player1.play() player2 continue playback but without sound. Another notice that it happens only when I change src. When src is not changed it crossfades 1 -> 2 and 2 -> 1 excellent. After src change im running load() and seek to 0. And still it happens every every even time

    nextPlayer.src = "http://example.com/1.mp3";
    nextPlayer.currentTime = 0;
    nextPlayer.load();
    nextPlayer.play().then(() => {
        this.__crossFade();
    });

What am I missing? What can it cause?