How do I validate in datagridfield?

I'm running into the same issue I think, in Plone 5.2, DGF 1.5.3.

def filesize_limit(data, limit=5):
    mbs = data.size/1024/1024
    if mbs > limit:
        raise Invalid(f'File must not exceed {limit} MB')

def validate_presentation(val):
    filesize_limit(val, 5)

class IPresentation(model.Schema):
    file = NamedBlobFile(
        title='Attachment',
        description='If available, upload an image of the presenter(s) at the event or a flyer '
                    'of the event (less than 5 MB).',
        required=False,
        constraint=validate_presentation
    )

class IMySchema(model.Schema):
    directives.widget(presentations=BlockDataGridFieldFactory)
    presentations = schema.List(
        title='Presentations',
        value_type=DictRow(title="Presentation", schema=IPresentation),
        required=False,
    )

In the Dexterity add form, if I set the schema just to IPresentation (no DGF) it works as expected. With the schema set IMySchema, validation fails but instead of being caught and a warning shown it just displays the traceback.

I tried raising a ValidationError instead. This led to the message "The system could not process the given value." on the presentations field and "Raised if the Validation process fails." on the presentations sub field.