Sometimes the type of a caught exception will not be a string, but a complex object. A lot of error handling code expects type to be a string which can cause errors.
See this example, which I tested in a CommandBox task runner that had a text file called "robots.txt" in the same dir. The exception is expected since the text file is not a valid zip, but the type is unexpectedly a complex value.
The output of this code is
You can see the e.type variable is an instance of the net.lingala.zip4j.exception.ZipException$Type class.
I'm running 184.108.40.206-SNAPSHOT but someone on 220.127.116.11 ran my test and didn't get the error, so this may be a regression.