IdentityNow Management Connector


:spiral_notepad: Description SaaS Connector for IdentityNow
:balance_scale: Legal Agreement By using this CoLab item, you are agreeing to SailPoint’s Terms of Service for our developer community and open-source CoLab.
:hammer_and_wrench: Repository Link https://github.com/sailpoint-oss/colab-saas-conn-identitynow-management
:open_book: New to SaaS connectors in the CoLab? Read the getting started guide for SaaS Connectors in the CoLab.
:hospital: Supported by Community Developed

Overview

This is an IdentityNow loopback connector supports the following features:

  • Manage user levels as entitlements
  • Manage governance groups as entitlements
  • Manage lifecycle states as entitlements

Requirements

Guide

Other Installation Notes

If you the below error in the logs, make sure you’ve installed node.js/typescript properly and your npm is working. Mine was bugged, but after a clean install, it fixed the issue. - Thanks to @tim-leo

Supported Operations

10 Likes

Hello all,

I am trying to set up the COLAB-SAAS-CONN-IDENTITYNOW-MANAGEMENT connector within my tenant. I have been working on following all the documentation on how to set this up. The one thing I can not seem to find is how to build out the config.json in order to store my tenet information.
I have listed out all the links that I have used to follow the steps laid out in order to get this connector up and running.

Links:

@mpotti
You don’t need config.json to setup the connector.

  1. Create the connector in the instance: sail conn create "example-connector"
  2. Compile & package the connector: npm i && npm run pack-zip
  3. Upload the package: sail conn upload -c <yourid> -f dist/*.zip

Once you have done that, go to the Web UI to create the source and configure it.

Here is the error message I am getting when doing step one.

You need to configure sail CLI: CLI | SailPoint Developer Community

Thank you that was the missing step. I was able to deploy to my sandbox.

1 Like

When I try to run the first aggregation I am getting this error message.

java.lang.RuntimeException - java.lang.IllegalStateException: Command timed out - java.lang.RuntimeException: java.lang.IllegalStateException: Command timed out at com.sailpoint.mantis.qpoc.message.AccountAggregation.iterateResourceObjects_aroundBody8(AccountAggregation.java:662) at com.sailpoint.mantis.qpoc.message.AccountAggregation$AjcClosure9.run(AccountAggregation.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:179) at com.sailpoint.tracing.otel.TracedAspect.lambda$traceExecution$0(TracedAspect.java:30) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:170) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:143) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:131) at com.sailpoint.tracing.otel.TracedAspect.traceExecution(TracedAspect.java:32) at com.sailpoint.mantis.qpoc.message.AccountAggregation.iterateResourceObjects(AccountAggregation.java:595) at com.sailpoint.mantis.qpoc.message.AccountAggregation.handleMessage_aroundBody0(AccountAggregation.java:358) at com.sailpoint.mantis.qpoc.message.AccountAggregation$AjcClosure1.run(AccountAggregation.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:179) at com.sailpoint.atlas.metrics.MessageMetricsAspect.meterMessageTimeAndExceptions(MessageMetricsAspect.java:64) at com.sailpoint.mantis.qpoc.message.AccountAggregation.handleMessage(AccountAggregation.java:339) at com.sailpoint.atlas.messaging.server.TypeMessageHandler.handleMessage(TypeMessageHandler.java:87) at com.sailpoint.mantis.qpoc.utility.QpocMessageHandler.handleMessage_aroundBody0(QpocMessageHandler.java:60) at com.sailpoint.mantis.qpoc.utility.QpocMessageHandler$AjcClosure1.run(QpocMessageHandler.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:179) at com.sailpoint.atlas.metrics.MessageMetricsAspect.meterMessageTimeAndExceptions(MessageMetricsAspect.java:64) at com.sailpoint.mantis.qpoc.utility.QpocMessageHandler.handleMessage(QpocMessageHandler.java:52) at com.sailpoint.mantis.platform.message.ObjectConfigMessageHandler.handleMessage(ObjectConfigMessageHandler.java:33) at com.sailpoint.atlas.tracing.plugin.otel.TraceMessageHandler.lambda$handleMessage$0(TraceMessageHandler.java:60) at com.sailpoint.atlas.tracing.otel.Trace.trace(Trace.java:54) at com.sailpoint.atlas.tracing.plugin.otel.TraceMessageHandler.handleMessage(TraceMessageHandler.java:55) at com.sailpoint.atlas.message.DynamicMessageHandler$ChainedMessageHandlerAdapter.handleMessage(DynamicMessageHandler.java:44) at com.sailpoint.atlas.tracing.plugin.TracingMessageHandler.handleMessage(TracingMessageHandler.java:88) at com.sailpoint.atlas.message.DynamicMessageHandler$ChainedMessageHandlerAdapter.handleMessage(DynamicMessageHandler.java:44) at com.sailpoint.atlas.usage.plugin.UsageMessageHandler.handleMessage(UsageMessageHandler.java:36) at com.sailpoint.atlas.message.DynamicMessageHandler$ChainedMessageHandlerAdapter.handleMessage(DynamicMessageHandler.java:44) at com.sailpoint.atlas.message.DynamicMessageHandler.handleMessage(DynamicMessageHandler.java:34) at com.sailpoint.mantis.platform.message.SailPointContextMessageHandler.handleMessage(SailPointContextMessageHandler.java:55) at com.sailpoint.atlas.message.FailureNotificationHandler.handleMessage(FailureNotificationHandler.java:55) at com.sailpoint.atlas.message.RequestContextMessageHandler.handleMessage(RequestContextMessageHandler.java:72) at com.sailpoint.mantis.platform.message.ExceptionMessageHandler.handleMessage(ExceptionMessageHandler.java:49) at com.sailpoint.atlas.messaging.server.MessageProcessor.handleJobMessage(MessageProcessor.java:196) at com.sailpoint.atlas.messaging.server.MessageProcessor.handleMessage(MessageProcessor.java:129) at com.sailpoint.atlas.messaging.server.MessageProcessor.lambda$null$0(MessageProcessor.java:99) at com.sailpoint.atlas.messaging.server.MessageProcessor.withOrgLogging(MessageProcessor.java:171) at com.sailpoint.atlas.messaging.server.MessageProcessor.lambda$asyncHandleMessage$1(MessageProcessor.java:99) at com.sailpoint.atlas.messaging.server.impl.SourceRunnableImpl.run(SourceRunnableImpl.java:77) at com.sailpoint.atlas.messaging.server.impl.BufferedSourceQueue$IncrementingSourceRunnable.run(BufferedSourceQueue.java:181) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.IllegalStateException: Command timed out at com.sailpoint.connector.cloud.spconnect.SpConnectProxy.pollNextResult_aroundBody4(SpConnectProxy.java:409) at com.sailpoint.connector.cloud.spconnect.SpConnectProxy$AjcClosure5.run(SpConnectProxy.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:179) at com.sailpoint.tracing.otel.TracedAspect.lambda$traceExecution$0(TracedAspect.java:30) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:170) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:143) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:131) at com.sailpoint.tracing.otel.TracedAspect.traceExecution(TracedAspect.java:32) at com.sailpoint.connector.cloud.spconnect.SpConnectProxy.pollNextResult(SpConnectProxy.java:381) at com.sailpoint.connector.cloud.spconnect.SpConnectProxy$1.nextResponse_aroundBody0(SpConnectProxy.java:311) at com.sailpoint.connector.cloud.spconnect.SpConnectProxy$1$AjcClosure1.run(SpConnectProxy.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:179) at com.sailpoint.tracing.otel.TracedAspect.lambda$traceExecution$0(TracedAspect.java:30) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:170) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:143) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:131) at com.sailpoint.tracing.otel.TracedAspect.traceExecution(TracedAspect.java:32) at com.sailpoint.connector.cloud.spconnect.SpConnectProxy$1.nextResponse(SpConnectProxy.java:307) at sailpoint.connector.cloud.CloudConnector$CloudBridgeIterator.buildDataBlockIterator(CloudConnector.java:1150) at sailpoint.connector.cloud.CloudConnector$CloudBridgeIterator.checkForMoreData(CloudConnector.java:1138) at sailpoint.connector.cloud.CloudConnector$CloudBridgeIterator.hasNext(CloudConnector.java:1064) at sailpoint.connector.ConnectorProxy$CustomizingIterator.peek(ConnectorProxy.java:738) at sailpoint.connector.ConnectorProxy$CustomizingIterator.hasNext(ConnectorProxy.java:765) at com.sailpoint.mantis.qpoc.message.AccountAggregation.iterateResourceObjects_aroundBody8(AccountAggregation.java:630) ... 45 more

Anything in the logs with the command sail conn logs?

[2024-02-28T08:57:46.636-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"Processing Owens, Rebecca","productFlags":null,"version":1}
[2024-02-28T08:57:46.636-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Building account with uid rowens05","productFlags":null,"version":1}
[2024-02-28T08:57:46.636-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing levels","productFlags":null,"version":1}
[2024-02-28T08:57:46.636-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: Fetching levels","productFlags":null,"version":1}
[2024-02-28T08:57:46.636-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: Privileged identities provided","productFlags":null,"version":1}
[2024-02-28T08:57:46.636-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: No IdentityNow account found","productFlags":null,"version":1}
[2024-02-28T08:57:46.636-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing governance groups","productFlags":null,"version":1}
[2024-02-28T08:57:46.636-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedWorkgroups: Fetching workgroups","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedWorkgroups: No workgroups found","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing lifecycle states","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLCS: LCS not found or automatically set","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   Discarding Owens, Rebecca","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"Processing Gibson, Ceirra","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Building account with uid cgibso06","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing levels","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: Fetching levels","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: Privileged identities provided","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: No IdentityNow account found","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing governance groups","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedWorkgroups: Fetching workgroups","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedWorkgroups: No workgroups found","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing lifecycle states","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLCS: LCS not found or automatically set","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   Discarding Gibson, Ceirra","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"Processing Gause, Sarah","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Building account with uid sgause0","productFlags":null,"version":1}
[2024-02-28T08:57:46.637-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing levels","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: Fetching levels","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: Privileged identities provided","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: No IdentityNow account found","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing governance groups","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedWorkgroups: Fetching workgroups","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedWorkgroups: No workgroups found","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing lifecycle states","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLCS: LCS not found or automatically set","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   Discarding Gause, Sarah","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"Processing Stillwell, Blair","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Building account with uid bstill02","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing levels","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: Fetching levels","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: Privileged identities provided","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLevels: No IdentityNow account found","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing governance groups","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedWorkgroups: Fetching workgroups","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedWorkgroups: No workgroups found","productFlags":null,"version":1}
[2024-02-28T08:57:46.638-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   buildAccount: Processing lifecycle states","productFlags":null,"version":1}
[2024-02-28T08:57:46.639-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"f164f70c-8cc1-427b-9ef6-f641dd75a0f9","message":"   getAssignedLCS: LCS not found or automatically set","productFlags":null,"version":1}

Did you discover the account schema before aggregating anything?


This is what I have for the Account schema. Where would I need to look for the account schema in this case? This is the out of the box for the connector.

The schema depends on your configuration so it’s dynamic. Click on the three-dot button, discover it and try again.

I updated the schema and I am getting the following error message:

java.lang.RuntimeException - java.lang.IllegalStateException: Command timed out - java.lang.RuntimeException: java.lang.IllegalStateException: Command timed out at com.sailpoint.mantis.qpoc.message.AccountAggregation.iterateResourceObjects_aroundBody8(AccountAggregation.java:662) at com.sailpoint.mantis.qpoc.message.AccountAggregation$AjcClosure9.run(AccountAggregation.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:179) at com.sailpoint.tracing.otel.TracedAspect.lambda$traceExecution$0(TracedAspect.java:30) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:170) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:143) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:131) at com.sailpoint.tracing.otel.TracedAspect.traceExecution(TracedAspect.java:32) at com.sailpoint.mantis.qpoc.message.AccountAggregation.iterateResourceObjects(AccountAggregation.java:595) at com.sailpoint.mantis.qpoc.message.AccountAggregation.handleMessage_aroundBody0(AccountAggregation.java:358) at com.sailpoint.mantis.qpoc.message.AccountAggregation$AjcClosure1.run(AccountAggregation.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:179) at com.sailpoint.atlas.metrics.MessageMetricsAspect.meterMessageTimeAndExceptions(MessageMetricsAspect.java:64) at com.sailpoint.mantis.qpoc.message.AccountAggregation.handleMessage(AccountAggregation.java:339) at com.sailpoint.atlas.messaging.server.TypeMessageHandler.handleMessage(TypeMessageHandler.java:87) at com.sailpoint.mantis.qpoc.utility.QpocMessageHandler.handleMessage_aroundBody0(QpocMessageHandler.java:60) at com.sailpoint.mantis.qpoc.utility.QpocMessageHandler$AjcClosure1.run(QpocMessageHandler.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:179) at com.sailpoint.atlas.metrics.MessageMetricsAspect.meterMessageTimeAndExceptions(MessageMetricsAspect.java:64) at com.sailpoint.mantis.qpoc.utility.QpocMessageHandler.handleMessage(QpocMessageHandler.java:52) at com.sailpoint.mantis.platform.message.ObjectConfigMessageHandler.handleMessage(ObjectConfigMessageHandler.java:33) at com.sailpoint.atlas.tracing.plugin.otel.TraceMessageHandler.lambda$handleMessage$0(TraceMessageHandler.java:60) at com.sailpoint.atlas.tracing.otel.Trace.trace(Trace.java:54) at com.sailpoint.atlas.tracing.plugin.otel.TraceMessageHandler.handleMessage(TraceMessageHandler.java:55) at com.sailpoint.atlas.message.DynamicMessageHandler$ChainedMessageHandlerAdapter.handleMessage(DynamicMessageHandler.java:44) at com.sailpoint.atlas.tracing.plugin.TracingMessageHandler.handleMessage(TracingMessageHandler.java:88) at com.sailpoint.atlas.message.DynamicMessageHandler$ChainedMessageHandlerAdapter.handleMessage(DynamicMessageHandler.java:44) at com.sailpoint.atlas.usage.plugin.UsageMessageHandler.handleMessage(UsageMessageHandler.java:36) at com.sailpoint.atlas.message.DynamicMessageHandler$ChainedMessageHandlerAdapter.handleMessage(DynamicMessageHandler.java:44) at com.sailpoint.atlas.message.DynamicMessageHandler.handleMessage(DynamicMessageHandler.java:34) at com.sailpoint.mantis.platform.message.SailPointContextMessageHandler.handleMessage(SailPointContextMessageHandler.java:55) at com.sailpoint.atlas.message.FailureNotificationHandler.handleMessage(FailureNotificationHandler.java:55) at com.sailpoint.atlas.message.RequestContextMessageHandler.handleMessage(RequestContextMessageHandler.java:72) at com.sailpoint.mantis.platform.message.ExceptionMessageHandler.handleMessage(ExceptionMessageHandler.java:49) at com.sailpoint.atlas.messaging.server.MessageProcessor.handleJobMessage(MessageProcessor.java:196) at com.sailpoint.atlas.messaging.server.MessageProcessor.handleMessage(MessageProcessor.java:129) at com.sailpoint.atlas.messaging.server.MessageProcessor.lambda$null$0(MessageProcessor.java:99) at com.sailpoint.atlas.messaging.server.MessageProcessor.withOrgLogging(MessageProcessor.java:171) at com.sailpoint.atlas.messaging.server.MessageProcessor.lambda$asyncHandleMessage$1(MessageProcessor.java:99) at com.sailpoint.atlas.messaging.server.impl.SourceRunnableImpl.run(SourceRunnableImpl.java:77) at com.sailpoint.atlas.messaging.server.impl.BufferedSourceQueue$IncrementingSourceRunnable.run(BufferedSourceQueue.java:181) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.IllegalStateException: Command timed out at com.sailpoint.connector.cloud.spconnect.SpConnectProxy.pollNextResult_aroundBody4(SpConnectProxy.java:409) at com.sailpoint.connector.cloud.spconnect.SpConnectProxy$AjcClosure5.run(SpConnectProxy.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:179) at com.sailpoint.tracing.otel.TracedAspect.lambda$traceExecution$0(TracedAspect.java:30) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:170) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:143) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:131) at com.sailpoint.tracing.otel.TracedAspect.traceExecution(TracedAspect.java:32) at com.sailpoint.connector.cloud.spconnect.SpConnectProxy.pollNextResult(SpConnectProxy.java:381) at com.sailpoint.connector.cloud.spconnect.SpConnectProxy$1.nextResponse_aroundBody0(SpConnectProxy.java:311) at com.sailpoint.connector.cloud.spconnect.SpConnectProxy$1$AjcClosure1.run(SpConnectProxy.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:179) at com.sailpoint.tracing.otel.TracedAspect.lambda$traceExecution$0(TracedAspect.java:30) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:170) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:143) at com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:131) at com.sailpoint.tracing.otel.TracedAspect.traceExecution(TracedAspect.java:32) at com.sailpoint.connector.cloud.spconnect.SpConnectProxy$1.nextResponse(SpConnectProxy.java:307) at sailpoint.connector.cloud.CloudConnector$CloudBridgeIterator.buildDataBlockIterator(CloudConnector.java:1150) at sailpoint.connector.cloud.CloudConnector$CloudBridgeIterator.checkForMoreData(CloudConnector.java:1138) at sailpoint.connector.cloud.CloudConnector$CloudBridgeIterator.hasNext(CloudConnector.java:1064) at sailpoint.connector.ConnectorProxy$CustomizingIterator.peek(ConnectorProxy.java:738) at sailpoint.connector.ConnectorProxy$CustomizingIterator.hasNext(ConnectorProxy.java:765) at com.sailpoint.mantis.qpoc.message.AccountAggregation.iterateResourceObjects_aroundBody8(AccountAggregation.java:630) ... 45 more

LOGS:


[2024-02-28T11:05:49.378-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"23ab54b7-f4a6-420d-8b34-b96a09495d81","message":"Processing ErrorFix, John","productFlags":null,"version":1}
[2024-02-28T11:05:49.379-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"23ab54b7-f4a6-420d-8b34-b96a09495d81","message":"   buildAccount: Building account with uid jerror91","productFlags":null,"version":1}
[2024-02-28T11:05:49.379-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"23ab54b7-f4a6-420d-8b34-b96a09495d81","message":"   Discarding ErrorFix, John","productFlags":null,"version":1}
[2024-02-28T11:11:34.324-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"3aa77cbe-4dc2-4dcd-ba4e-7f91b5c5226d","message":"Processing ErrorFix, John","productFlags":null,"version":1}
[2024-02-28T11:11:34.324-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"3aa77cbe-4dc2-4dcd-ba4e-7f91b5c5226d","message":"   buildAccount: Building account with uid jerror91","productFlags":null,"version":1}
[2024-02-28T11:11:34.324-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"3aa77cbe-4dc2-4dcd-ba4e-7f91b5c5226d","message":"   Discarding ErrorFix, John","productFlags":null,"version":1}
[2024-02-28T11:12:27.032-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"6adffe01-b69b-4a4b-bf5b-3601ea8c9347","message":"Processing ErrorFix, John","productFlags":null,"version":1}
[2024-02-28T11:12:27.032-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"6adffe01-b69b-4a4b-bf5b-3601ea8c9347","message":"   buildAccount: Building account with uid jerror91","productFlags":null,"version":1}
[2024-02-28T11:12:27.033-06:00] INFO  | connectorMessage ▶︎ {"commandType":"std:account:list","invocationId":"6adffe01-b69b-4a4b-bf5b-3601ea8c9347","message":"   Discarding ErrorFix, John","productFlags":null,"version":1}

[2024-02-28T11:50:03.196-06:00] INFO | commandOutcome :arrow_forward:︎ Command failed with [ConnectorError] error receiving response from connector: stream client connection is broken (connector process may have crashed): std:account:list, for connector version 1.output_count=0 keep_alive_count=0 state_count=0. Elapsed time 108170ms

Try and recreate the source and discover the schema right after configuring it. If it still fails, message me and we’ll have a remote session to look into it.

I deleted the old one and built a new one and am still getting the same error message.

I proposed an idea to have SailPoint take management of the development of the Identity management connector: https://ideas.sailpoint.com/ideas/GOV-I-3353, please upvote to increase priority, thanks!

The “discover schema” action in the account schema is important because out of the box, the connector doesn’t have any entitlement attribute links on the account schema.

I was wondering why I couldn’t see any user access even though both account and entitlement aggregations were successful, and this was the issue.

Edit: Perhaps I spoke too soon

If you didn’t discover the schema before aggregation, I’d recommend you reset your entitlements from VS Code extension or you start with a new source altogether. Entitlements discovered before a reference to them is set on the account schema are virtually useless.

Yep, that worked. Thanks!