diff --git a/pkg/arvo/sys/vane/ames.hoon b/pkg/arvo/sys/vane/ames.hoon index 997eeefaf..75ba7ba8d 100644 --- a/pkg/arvo/sys/vane/ames.hoon +++ b/pkg/arvo/sys/vane/ames.hoon @@ -2790,11 +2790,18 @@ :: (emit [/ames]~ %pass wire %b %rest next-wake) =/ nax-bone=^bone (mix 0b10 bone) + =? peer-core (~(has by snd.peer-state) nax-bone) + %. peer-core + %+ trace odd.veb + =/ dat [her.channel bone=nax-bone message-num=message-num -.task] + |.("remove naxplanation flow {}") =. peer-state =, peer-state %_ peer-state + :: preemptively delete nax flows (e.g. nacks for initial %watches) + :: + snd (~(del by (~(del by snd) bone)) nax-bone) rcv (~(del by rcv) bone) - snd (~(del by snd) bone) corked (~(put in corked) bone) closing (~(del in closing) bone) krocs (~(del in krocs) bone) diff --git a/pkg/arvo/sys/vane/gall.hoon b/pkg/arvo/sys/vane/gall.hoon index 842d9d356..6e3efa64c 100644 --- a/pkg/arvo/sys/vane/gall.hoon +++ b/pkg/arvo/sys/vane/gall.hoon @@ -523,6 +523,11 @@ ?~ error=error.sign-arvo ~ `[[%leaf (trip tag.u.error)] tang.u.error] + :: send a %cork if we get a nack upon initial subscription + :: + =? mo-core + &(?=(^ err) |(?=(%watch-as remote-request) ?=(%watch remote-request))) + (mo-pass [%sys wire] %a %cork ship) :: ?- remote-request %watch-as (mo-give %unto %watch-ack err)