Я вижу, что связанная с контекстом информация «[T: ClassTag]» в AvroUtil вызывает ошибку.
Ссылаясь на метод 'apply [T] (неявная schemaFor: SchemaFor [T])' автономного объекта 'AvroSchema' (выше вызывается через 'AvroSchema [T]'): если метод не снабжен параметром value, и компилятор не находит неявного объекта в области , тогда по умолчанию будет неявный экземпляр SchemaFor [T], который будет создан через трейт MagnoliaDerivedSchemaFors :
implicit def gen[T]: SchemaFor[T] = macro Magnolia.gen[T]
Информация, привязанная к контексту, воздерживается от создания этого объекта по умолчанию, и в результате вы получаете сообщение об ошибке. Похоже, что лучше использовать существующий метод применения автономного объекта AvroSchema, а не создавать новый класс. Другой способ - преобразовать AvroUtil в отдельный объект (что-то вроде кода ниже, который очень похож на AvroSchema) и использовать метод apply:
import com.sksamuel.avro4s.{AvroSchema, SchemaFor}
import org.apache.avro.Schema
object AvroUtil {
def apply[T](implicit schemaFor: SchemaFor[T]): Schema =
AvroSchema[T](schemaFor)
}