Hi Stéphane,

nice to hear you're going ahead.
Here, what I can see is some problem in the groovy script, probably in your
SchemaScript.groovy
I can suppose in your script you're passing AttributeInfoBuilder instead
of AttributeInfo, so you're missing the build() method.
Please take as a reference the SchemaScript [1].

[1]
https://github.com/apache/syncope/blob/master/fit/core-reference/src/test/resources/rest/SchemaScript.groovy

Best regards,
Lorenzo



Il giorno mar 20 gen 2026 alle ore 23:41 Stéphane Popoff <
[email protected]> ha scritto:

> Hi Lorenzo,
>
> Thank's for the reply. I have a better result now [1] but don't
> understand why I also have errors when reading schema [2]. ([2] is
> before [1] from the same Syncope log)
>
> Best regards,
>
> Stéphane POPOFF
>
> [1] 2026-01-20 15:25:39.218 DEBUG [   Thread-6]
> net.tirasa.connid.commons.scripted.AbstractScriptedConnector :
> ObjectClass: __ACCOUNT__     Method: executeQuery
> 2026-01-20 15:25:39.223  INFO [   Thread-6]
> net.tirasa.connid.commons.scripted.AbstractScriptedConnector :
> Entering SEARCH Script       Method: invoke
> 2026-01-20 15:25:39.302 DEBUG [   Thread-6]
> net.tirasa.connid.commons.scripted.AbstractScriptedConnector : Search
> ok    Method: executeQuery
> 2026-01-20 15:25:39.302 DEBUG [   Thread-6]
> g.identityconnectors.framework.common.objects.ResultsHandler :
> instance='RestAdmin' Enter: handle({Uid=Attribute: {Name=__UID__,
> Value=[appAdmin]}, ObjectClass=ObjectClass: __ACCOUNT__,
> Attributes=[Attribute: {Name=projects, Value=[projet1, projet2]},
> Attribute: {Name=appName, Value=[appAdmin]}, Attribute:
> {Name=__NAME__, Value=[appAdmin]}, Attribute: {Name=__UID__,
> Value=[appAdmin]}], Name=Attribute: {Name=__NAME__,
> Value=[appAdmin]}})      Method: handle
> 2026-01-20 15:25:39.304
> [operation.id=019bdc02-ec90-7f4b-a905-d7c8af685ed4] DEBUG
> [handler-409] g.identityconnectors.framework.common.objects.ResultsHandler
> : Enter: handle({Uid=Attribute: {Name=__UID__, Value=[appAdmin]},
> ObjectClass=ObjectClass: __ACCOUNT__, Attributes=[Attribute:
> {Name=projects, Value=[projet1, projet2]}, Attribute: {Name=appName,
> Value=[appAdmin]}, Attribute: {Name=__NAME__, Value=[appAdmin]},
> Attribute: {Name=__UID__, Value=[appAdmin]}], Name=Attribute:
> {Name=__NAME__, Value=[appAdmin]}})    Method: handle
> 2026-01-20 15:25:39.304
> [operation.id=019bdc02-ec90-7f4b-a905-d7c8af685ed4] DEBUG
> [handler-409] g.identityconnectors.framework.common.objects.ResultsHandler
> : Return: false Method: handle
> 2026-01-20 15:25:39.304 DEBUG [   Thread-6]
> g.identityconnectors.framework.common.objects.ResultsHandler :
> instance='RestAdmin' Return: false   Method: handle
> 2026-01-20 15:25:39.305 DEBUG [   Thread-6]
> net.tirasa.connid.commons.scripted.AbstractScriptedConnector :
> ConnectorObject is built     Method: processResults
> 2026-01-20 15:25:39.305 DEBUG [   Thread-6]
> org.identityconnectors.framework.spi.SearchResultsHandler    :
> instance='RestAdmin' Enter: handleResult(SearchResult:
> {PagedResultsCookie=null, RemainingPagedResults=-1,
> AllResultsReturned=true})      Method: handleResult
> 2026-01-20 15:25:39.306 DEBUG [   Thread-6]
> org.identityconnectors.framework.spi.SearchResultsHandler    :
> instance='RestAdmin' Return  Method: handleResult
> 2026-01-20 15:25:39.306 DEBUG [   Thread-6]
> org.identityconnectors.framework.spi.operations.SearchOp     :
> instance='RestAdmin' Return  Method: executeQuery
> 2026-01-20 15:25:39.308
> [operation.id=019bdc02-ec90-7f4b-a905-d7c8af685ed4] DEBUG
> [handler-409] org.identityconnectors.framework.api.operations.SearchApiOp
>  : Return: SearchResult: {PagedResultsCookie=null,
> RemainingPagedResults=-1, AllResultsReturned=true}    Method: search
>
> [2] Caused by: java.lang.ClassCastException: class
> org.identityconnectors.framework.common.objects.AttributeInfoBuilder
> cannot be cast to class
> org.identityconnectors.framework.common.objects.AttributeInfo
> (org.identityconnectors.framework.common.objects.AttributeInfoBuilder
> and org.identityconnectors.framework.common.objects.AttributeInfo are
> in unnamed module of loader
> org.springframework.boot.loader.launch.LaunchedClassLoader @6ce253f1)
>         at
> org.identityconnectors.framework.common.objects.ObjectClassInfoBuilder.addAllAttributeInfo(ObjectClassInfoBuilder.java:87)
>         at
> org.identityconnectors.framework.common.objects.ObjectClassInfoBuilder$addAllAttributeInfo$0.call(Unknown
> Source)
>         at
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
>         at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
>         at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:176)
>         at
> org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:24)
>         at
> org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:176)
>         at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:174)
>         at
> org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:178)
>         at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:344)
>         at Script1.run(Script1.groovy:49)
>         at
> org.identityconnectors.common.script.groovy.GroovyScriptExecutorFactory$GroovyScriptExecutor.execute(GroovyScriptExecutorFactory.java:100)
>         at
> net.tirasa.connid.commons.scripted.AbstractScriptedConnector.schema(AbstractScriptedConnector.java:573)
>         ... 28 more
>
> 2026-01-20 15:25:37.824
> [operation.id=019bdc02-ec90-7f4b-a905-d7c8af685ed4] DEBUG
> [handler-409] org.identityconnectors.framework.api.operations.SearchApiOp
>  : instan
>
>
> Le mar. 20 janv. 2026 à 10:54, Lorenzo Di Cola <[email protected]> a
> écrit :
> >
> > Hello,
> > This error is coming from ConnId Framework, not from Syncope itself, and
> it is raised after your connector has returned an object, when the
> framework tries to apply the search filter.
> > The filter is the ConnId search filter that Syncope passes to the
> connector when it performs a search or get operation.
> > The filter is not configured statically. It is dynamically built by
> Syncope from:
> >
> > The operation being executed, for example: read, search, etc.
> > The mapping of the external resource
> > The attribute used as ConnId Name, for example __NAME__, __UID__
> >
> > Maybe the main question here is the last one, why the mapping is wrong
> for the filter. Please take care about your Syncope mapping configuration
> and how you're using the Connid __NAME__ and __UID__.
> >
> > HTH
> > Best regards,
> > Lorenzo
> >
> > Il giorno sab 17 gen 2026 alle ore 17:49 Stéphane Popoff <
> [email protected]> ha scritto:
> >>
> >> Hi,
> >>
> >> When requesting a record on a Rest connector that respond with data:
> >>
> {"appName":"appAdmin","key":null,"login":"appAdmin","status":"ACTIVE","projects":["projet1","projet2"],"uid":"appAdmin"}
> >>
> >> I found in Syncope log this exception:
> >> Caused by: java.lang.IllegalStateException: Object {Uid=Attribute:
> >> {Name=__UID__, Value=[appAdmin]}, ObjectClass=ObjectClass:
> >> __ACCOUNT__, Attributes=[Attribute: {Name=projects, Value=[projet1,
> >> projet2]}, Attribute: {Name=appName, Value=[appAdmin]}, Attribute:
> >> {Name=__NAME__, Value=[appAdmin]}, Attribute: {Name=__UID__,
> >> Value=[appAdmin]}], Name=Attribute: {Name=__NAME__, Value=[appAdmin]}}
> >> was returned by the connector but failed to pass the framework filter.
> >> This seems like wrong implementation of the filter in the connector.
> >>         at
> org.identityconnectors.framework.impl.api.local.operations.FilteredResultsHandler.handle(FilteredResultsHandler.java:82)
> >>         at
> org.identityconnectors.framework.impl.api.local.operations.SearchImpl$AttributesToGetSearchResultsHandler.handle(SearchImpl.java:275)
> >>         at
> org.identityconnectors.framework.impl.api.local.operations.SearchImpl$1.handle(SearchImpl.java:145)
> >>         at
> org.identityconnectors.framework.impl.api.SearchResultsHandlerLoggingProxy.handle(SearchResultsHandlerLoggingProxy.java:75)
> >>         at
> net.tirasa.connid.commons.scripted.AbstractScriptedConnector.processResults(AbstractScriptedConnector.java:800)
> >>         at
> net.tirasa.connid.commons.scripted.AbstractScriptedConnector.executeQuery(AbstractScriptedConnector.java:616)
> >>         ... 14 more
> >>
> >> My questions is about the connector filter:
> >> - What is attended by the filter ?
> >> - Where to find the configuration of that filter ?
> >> - Why is the external attribute appName, mapped on the internal name
> >> attribute is wrong for the filter ?
> >>
> >> Best regards,
> >>
> >> Stéphane POPOFF
> >
> >
> >
> > --
> >
> > --
> > Lorenzo Di Cola
> >
> > Software Engineer @ Tirasa S.r.l.
> > Viale Vittoria Colonna, 97 - 65127 Pescara
> > Tel +39 0859116307 / FAX +39 0859111173
> > http://www.tirasa.net
> >
> > Apache Syncope Committer
> >
> > Syncope PMC Member at The Apache Software Foundation
> >
> > http://people.apache.org/phonebook.html?uid=loredicola
>


-- 

-- 
Lorenzo Di Cola

Software Engineer @ Tirasa S.r.l.
Viale Vittoria Colonna, 97 - 65127 Pescara
Tel +39 0859116307 / FAX +39 0859111173http://www.tirasa.net

Apache Syncope Committer

Syncope PMC Member at The Apache Software Foundation

http://people.apache.org/phonebook.html?uid=loredicola

Reply via email to