Ошибка при назначении дочерних ролей + multitenancy

Добрый день!
Jmix 2.7.3
Поймали баг при назначении дочерних ролей, если в проект добавлен add-on multitenancy
Воспроизводится, если:

  1. создаём пустой проект
  2. добавляем add-on multitenancy
  3. обновляем gradle
  4. добавляем две роли child и role и пытаемся для role назначить дочернюю роль.

Падает тут:
io.jmix.multitenancyflowui.impl.SameTenantRoleAssignmentCandidatePredicate
на tenantProvider.getTenantIdForUser(userDetails)

    @Override
    public boolean test(UserDetails userDetails, BaseRole baseRole) {
        if (RoleSource.ANNOTATED_CLASS.equals(baseRole.getSource())) {
            return true;
        }

        String userTenant = tenantProvider.getTenantIdForUser(userDetails);
        // Convert "NO_TENANT" to null to match null tenant of role
        userTenant = TenantProvider.NO_TENANT.equals(userTenant) ? null : userTenant;
        String roleTenant = baseRole.getTenantId();

        return Objects.equals(roleTenant, userTenant);
    }
    @Override
    public String getTenantIdForUser(UserDetails userDetails) {
        String tenantIdFieldName = getTenantIdFieldName(userDetails.getClass());

        if (tenantIdFieldName == null) {
            return TenantProvider.NO_TENANT;
        }

        String tenantId = (String) ReflectionHelper.getFieldValue(userDetails, tenantIdFieldName);
        //noinspection ConstantValue
        return tenantId != null ? tenantId : TenantProvider.NO_TENANT;
    }

userDetails.getClass() не может выполниться, потому что userDetails из ResourceRoleModelLookupView приходит пустой

    protected void loadRoles(@Nullable RoleFilterChangeEvent event) {
        List<ResourceRoleModel> roleModels = roleRepository.getAllRoles().stream()
                .filter(role -> (event == null || event.matches(role))
                        && !excludedRolesCodes.contains(role.getCode())
                )
                .filter(role -> compositeRoleAssignmentCandidatePredicate.test(user, role))
                .map(roleModelConverter::createResourceRoleModel)
                .sorted(Comparator.comparing(ResourceRoleModel::getName))
                .collect(Collectors.toList());
        roleModelsDc.setItems(roleModels);
    }

compositeRoleAssignmentCandidatePredicate.test(user, role)) - тут падает.

Если роли назначаются пользователю используется тот же lookup, но в RoleAssignmentView есть resourceRoleModelLookupView.setUser(user);
А в ResourceRoleModelDetailView вызывается просто

    @Subscribe("childRolesTable.add")
    public void onChildRolesTableAdd(ActionPerformedEvent event) {
        DialogWindow<ResourceRoleModelLookupView> lookupDialog = dialogWindows.lookup(childRolesTable)
                .withViewClass(ResourceRoleModelLookupView.class)
                .build();

        List<String> excludedRolesCodes = childRolesDc.getItems().stream()
                .map(BaseRoleModel::getCode)
                .collect(Collectors.toList());

        if (codeField.isReadOnly()) {
            excludedRolesCodes.add(getEditedEntity().getCode());
        }

        lookupDialog.getView().setExcludedRoles(excludedRolesCodes);

        lookupDialog.open();
    }

и user остаётся пустым