//var -s %a $unsafe(a)
* Set %a to $unsafe(YQ==).undo

//var -s %a $unsafe(%null)
* Set %a to

It looks like $unsafe is an alias that behaves like

Code
alias makesafe {
  if (.prop == undo) returnex $decode($1,m)
  var %string $encode($1,m)
  return $ $+ makesafe( $+ %string $+ ).undo
}

The handler for .undo obviously has no trouble when the input string is blank, but if there is a problem inside the code where it doesn't like creating the .undo string to be blank, assuming .undo is being handed to the subroutine handling $decode, can simply make the string be a single base64 symbol, which $decode would return as the empty string. So the final return could be preceded by:

Code
  if (%string == $null) var %string A

So the solution is to have $unsafe($null) return either $unsafe().undo or $unsafe(A).undo