diff --git a/pkg/arvo/sys/vane/gall.hoon b/pkg/arvo/sys/vane/gall.hoon
index 829c84541..93bc674b2 100644
--- a/pkg/arvo/sys/vane/gall.hoon
+++ b/pkg/arvo/sys/vane/gall.hoon
@@ -584,16 +584,26 @@
=/ tim (slav da+dat)
=/ =beak [(slav %p her) desk da+tim]
?> ?=([?(%b %c) %writ *] sign-arvo)
- ?^ p.sign-arvo
- =/ cag=cage r.u.p.sign-arvo
- ?. =(%vase p.cag)
- (mo-give %onto |+[leaf+"gall: invalid %writ {
} for {}"]~)
- =/ res (mule |.(!<(agent !<(vase q.cag))))
- ?: ?=(%| -.res)
- (mo-give %onto |+[leaf+"gall: {}" p.res])
- =. mo-core (mo-receive-core dap beak p.res)
- (mo-subscribe-to-agent-builds tim)
- (mo-give %onto |+[leaf+"gall: failed to build agent {}"]~)
+ |^ ^+ mo-core
+ ?~ p.sign-arvo
+ (fail leaf+"gall: failed to build agent {}" ~)
+ =/ cag=cage r.u.p.sign-arvo
+ ?. =(%vase p.cag)
+ (fail leaf+"gall: bad %writ {} for {}" ~)
+ =/ res (mule |.(!<(agent !<(vase q.cag))))
+ ?: ?=(%| -.res)
+ (fail leaf+["gall: bad agent {}"] p.res)
+ =. mo-core (mo-receive-core dap beak p.res)
+ (mo-subscribe-to-agent-builds tim)
+ ::
+ ++ fail
+ |= =tang
+ ^+ mo-core
+ =. mo-core (mo-give %onto |+tang)
+ =/ =case [%da tim]
+ =/ =wire /sys/cor/[dap]/[her]/[desk]/(scot case)
+ (mo-pass wire %c %warp p.beak desk ~ %next %a case /app/[dap]/hoon)
+ --
:: +mo-handle-sys-lyv: handle notice that agents have been rebuilt
::
++ mo-handle-sys-lyv