async def METHOD_NAME(
    app: web.Application, guest_email: str, invitation_url: str
) -> InvitationContent:
    """Validates invitation and associated email/user and returns content upon success
    raises InvitationsError
    """
    invitations_service: InvitationsServiceApi = get_invitations_service_api(app=app)
    with _handle_exceptions_as_invitations_errors():
        try:
            valid_url = parse_obj_as(AnyHttpUrl, invitation_url)
        except ValidationError as err:
            raise InvalidInvitation(reason=MSG_INVALID_INVITATION_URL) from err
        # check with service
        invitation = await invitations_service.extract_invitation(
            invitation_url=valid_url
        )
        if invitation.guest != guest_email:
            raise InvalidInvitation(
                reason="This invitation was issued for a different email"
            )
        # existing users cannot be re-invited
        if await _is_user_registered(app=app, email=invitation.guest):
            raise InvalidInvitation(reason=MSG_INVITATION_ALREADY_USED)
    return invitation