We use to rely on BML_ASSFAIL to determine if we need to return the receipt.  Two crashes at different times shows that when ASSFAIL is set, we can still have lingering receipt, perhaps it is due to renew or change lease mode. I don't have evidence.  However, the safest thing to do is to just return whatever you have, regardless how you got it.  This should fix the following crash:
We use to rely on BML_ASSFAIL to determine if we need to return the
receipt.  Two crashes at different times shows that when ASSFAIL is
set, we can still have lingering receipt, perhaps it is due to renew
or change lease mode. I don't have evidence.  However, the safest
thing to do is to just return whatever you have, regardless how you
got it.  This should fix the following crash:

425		psc_assert(bmi->bmi_assign == NULL);
(gdb) bt
    at /opt/packages/slash2/mds/p/pfl/log.c:494
    at /opt/packages/slash2/mds/p/pfl/log.c:524
    fmt=0x7767a8 "bmap@%p bno:%u flg:%#x:%s%s%s%s%s%s%s%s%s%s fid:%#018lx opcnt=%d : released reference (type=%u)")
    at /opt/packages/slash2/mds/p/slash2/share/bmap.c:107
    at /opt/packages/slash2/mds/p/pfl/service.c:394

pscedu/slash2-stable,pscedu/slash2-stable,pscedu/slash2-stable,pscedu/slash2-stable,pscedu/slash2-stable,pscedu/slash2-stable,pscedu/slash2-stable