Added another helper method, which decodes the String before validating the JSON:

scala> val good64 = "eyJhZ2UiOjIzLCJuYW1lIjoiSm9obiJ9"
good64: java.lang.String = eyJhZ2UiOjIzLCJuYW1lIjoiSm9obiJ9

scala> val bad64 = "am9obitzbWl0aA"
bad64: java.lang.String = am9obitzbWl0aA

scala> EventEnrichments.decodeAndValidateUnstructEvent("f", good64)
res2: scalaz.Validation[String,String] = Success({"age":23.0,"name":"John"})

scala> EventEnrichments.decodeAndValidateUnstructEvent("f", bad64)
res3: scalaz.Validation[String,String] = Failure(Field [f]: invalid JSON with parsing error: Unexpected content found: john+smith)

scala> EventEnrichments.decodeAndValidateUnstructEvent("f", null)
res4: scalaz.Validation[String,String] = Failure(Field [f]: exception Base64-decoding [null] (URL-safe encoding): [null])

/cc @gabor