Error message using graphSage

Hi guys, I'm having an issue when using gds.beta.graphSage.train.
My code is the following :
</> CALL gds.beta.graphSage.train(
'similarite_graphSage',
{
modelName: 'exampleTrainModel',
featureProperties: ['INDICATEUR_1_niv3', 'INDICATEUR_2_niv3','INDICATEUR_3_niv3','INDICATEUR_4_niv3','INDICATEUR_5_niv3','INDICATEUR_6_niv3'],
aggregator: 'mean',
activationFunction: 'sigmoid',
epochs: 10,
embeddingDimension: 32,
randomSeed: 1337,
sampleSizes: [25, 10]
}
) YIELD modelInfo as info
RETURN
info.modelName as modelName,
info.metrics.didConverge as didConverge,
info.metrics.ranEpochs as ranEpochs,
info.metrics.epochLosses as epochLosses </>

I have the following error message :
Neo.ClientError.Procedure.ProcedureCallFailed
Failed to invoke procedure gds.beta.graphSage.train: Caused by: java.lang.IllegalStateException: No more running tasks

I don't understand why I have this issue... If any of you have run throught it, please share it with me !!

Thank you.

Hey @aurelien.facci ,
I suspect your are hitting a bug in our progress logging.
Can you try to set logProgress: false in the train call?

Also, could you share the stacktrace? You can find it in the Neo4j log.

Hey @florentin_dorre,

I have the version of gds 1.8.2 and I can't update due to restrictions in my company. I have the neo4j version 4.4.2

Neo4j does not accept the argumentlogProgress: false, I have the following issue when putting this argument in the function : Failed to invoke procedure gds.beta.graphSage.train: Caused by: java.lang.IllegalArgumentException: Unexpected configuration key: logProgress.

The stacktrace I have is the following :
023-05-12 07:32:46.662+0000 WARN Computation failed java.lang.IllegalStateException: No more running tasks at org.neo4j.gds.core.utils.progress.tasks.TaskProgressTracker.lambda$requireCurrentTask$1(TaskProgressTracker.java:176) ~[neo4j-graph-data-science-1.8.2.jar:?] at java.util.Optional.orElseThrow(Optional.java:408) ~[?:?] at org.neo4j.gds.core.utils.progress.tasks.TaskProgressTracker.requireCurrentTask(TaskProgressTracker.java:176) ~[neo4j-graph-data-science-1.8.2.jar:?] at org.neo4j.gds.core.utils.progress.tasks.TaskProgressTracker.endSubTaskWithFailure(TaskProgressTracker.java:140) ~[neo4j-graph-data-science-1.8.2.jar:?] at org.neo4j.gds.AlgoBaseProc.lambda$compute$0(AlgoBaseProc.java:242) ~[neo4j-graph-data-science-1.8.2.jar:?] at org.neo4j.gds.BaseProc.runWithExceptionLogging(BaseProc.java:186) ~[neo4j-graph-data-science-1.8.2.jar:?] at org.neo4j.gds.AlgoBaseProc.compute(AlgoBaseProc.java:236) ~[neo4j-graph-data-science-1.8.2.jar:?] at org.neo4j.gds.AlgoBaseProc.compute(AlgoBaseProc.java:195) ~[neo4j-graph-data-science-1.8.2.jar:?] at org.neo4j.gds.TrainProc.trainAndStoreModelWithResult(TrainProc.java:65) ~[neo4j-graph-data-science-1.8.2.jar:?] at org.neo4j.gds.embeddings.graphsage.GraphSageTrainProc.train(GraphSageTrainProc.java:51) ~[neo4j-graph-data-science-1.8.2.jar:?] at org.neo4j.kernel.impl.proc.GeneratedProcedure_train464554950949055.apply(Unknown Source) ~[?:?] at org.neo4j.procedure.impl.ProcedureRegistry.callProcedure(ProcedureRegistry.java:235) ~[neo4j-procedure-4.4.2.jar:4.4.2] at org.neo4j.procedure.impl.GlobalProceduresRegistry.callProcedure(GlobalProceduresRegistry.java:352) ~[neo4j-procedure-4.4.2.jar:4.4.2] at org.neo4j.kernel.impl.newapi.AllStoreHolder.callProcedure(AllStoreHolder.java:1092) ~[neo4j-kernel-4.4.2.jar:4.4.2] at org.neo4j.kernel.impl.newapi.AllStoreHolder.procedureCallRead(AllStoreHolder.java:1004) ~[neo4j-kernel-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.runtime.interpreted.CallSupport$.$anonfun$callReadOnlyProcedure$1(CallSupport.scala:47) ~[neo4j-cypher-interpreted-runtime-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.runtime.interpreted.CallSupport$.callProcedure(CallSupport.scala:70) ~[neo4j-cypher-interpreted-runtime-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.runtime.interpreted.CallSupport$.callReadOnlyProcedure(CallSupport.scala:47) ~[neo4j-cypher-interpreted-runtime-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundReadQueryContext.callReadOnlyProcedure(TransactionBoundQueryContext.scala:1134) ~[neo4j-cypher-interpreted-runtime-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.planning.ExceptionTranslatingReadQueryContext.callReadOnlyProcedure(ExceptionTranslatingQueryContext.scala:226) ~[neo4j-cypher-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.runtime.LazyReadOnlyCallMode$.callProcedure(ProcedureCallMode.scala:50) ~[neo4j-cypher-runtime-util-4.4.2.jar:4.4.2] at org.neo4j.codegen.OperatorTaskPipeline0_4956.compiledOperate(Unknown Source) ~[?:?] at org.neo4j.cypher.internal.runtime.pipelined.operators.CompiledTask.operateWithProfile(OperatorCodeGenBaseTemplates.scala:452) ~[neo4j-cypher-pipelined-runtime-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.runtime.pipelined.PipelineTask.executeOperators(PipelineTask.scala:62) ~[neo4j-cypher-pipelined-runtime-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.runtime.pipelined.PipelineTask.executeWorkUnit(PipelineTask.scala:51) ~[neo4j-cypher-pipelined-runtime-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.runtime.pipelined.Worker.executeTask(Worker.scala:144) ~[neo4j-cypher-pipelined-runtime-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.runtime.pipelined.Worker.workOnQuery(Worker.scala:97) ~[neo4j-cypher-pipelined-runtime-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.runtime.pipelined.execution.CallingThreadExecutingQuery.request(CallingThreadExecutingQuery.scala:40) ~[neo4j-cypher-pipelined-runtime-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.PipelinedRuntimeResult.request(PipelinedRuntime.scala:502) ~[neo4j-enterprise-cypher-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.result.StandardInternalExecutionResult.request(StandardInternalExecutionResult.scala:90) ~[neo4j-cypher-4.4.2.jar:4.4.2] at org.neo4j.cypher.internal.result.ClosingExecutionResult.request(ClosingExecutionResult.scala:144) ~[neo4j-cypher-4.4.2.jar:4.4.2] at org.neo4j.fabric.stream.QuerySubject$BasicQuerySubject$1.doRequest(QuerySubject.java:184) ~[neo4j-fabric-4.4.2.jar:4.4.2] at org.neo4j.fabric.stream.QuerySubject$BasicQuerySubject$1.request(QuerySubject.java:167) ~[neo4j-fabric-4.4.2.jar:4.4.2] at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138) ~[reactor-core-3.4.11.jar:3.4.11] at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138) ~[reactor-core-3.4.11.jar:3.4.11] at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138) ~[reactor-core-3.4.11.jar:3.4.11] at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138) ~[reactor-core-3.4.11.jar:3.4.11] at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138) ~[reactor-core-3.4.11.jar:3.4.11] at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2158) ~[reactor-core-3.4.11.jar:3.4.11] at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138) ~[reactor-core-3.4.11.jar:3.4.11] at reactor.core.publisher.StrictSubscriber.request(StrictSubscriber.java:138) ~[reactor-core-3.4.11.jar:3.4.11] at org.neo4j.fabric.stream.Rx2SyncStream$RecordSubscriber.request(Rx2SyncStream.java:129) ~[neo4j-fabric-4.4.2.jar:4.4.2] at org.neo4j.fabric.stream.Rx2SyncStream.maybeRequest(Rx2SyncStream.java:91) ~[neo4j-fabric-4.4.2.jar:4.4.2] at org.neo4j.fabric.stream.Rx2SyncStream.readRecord(Rx2SyncStream.java:50) ~[neo4j-fabric-4.4.2.jar:4.4.2] at org.neo4j.fabric.bolt.BoltQueryExecutionImpl$QueryExecutionImpl.request(BoltQueryExecutionImpl.java:179) ~[neo4j-fabric-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.AbstractCypherAdapterStream.handleRecords(AbstractCypherAdapterStream.java:105) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.v3.messaging.ResultHandler.onPullRecords(ResultHandler.java:41) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.v4.messaging.PullResultConsumer.consume(PullResultConsumer.java:42) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State.consumeResult(TransactionStateMachine.java:507) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State$2.streamResult(TransactionStateMachine.java:351) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine.streamResult(TransactionStateMachine.java:99) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.transaction.StatementProcessorTxManager.streamResults(StatementProcessorTxManager.java:249) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.transaction.StatementProcessorTxManager.pullData(StatementProcessorTxManager.java:111) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.v4.runtime.InTransactionState.processStreamPullResultMessage(InTransactionState.java:78) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.v4.runtime.AbstractStreamingState.processUnsafe(AbstractStreamingState.java:51) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.v4.runtime.InTransactionState.processUnsafe(InTransactionState.java:64) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.v3.runtime.FailSafeBoltStateMachineState.process(FailSafeBoltStateMachineState.java:48) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.nextState(AbstractBoltStateMachine.java:154) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.process(AbstractBoltStateMachine.java:102) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.messaging.BoltRequestMessageReader.lambda$doRead$1(BoltRequestMessageReader.java:93) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.DefaultBoltConnection.lambda$enqueue$0(DefaultBoltConnection.java:156) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatchInternal(DefaultBoltConnection.java:252) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:187) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:177) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.executeBatch(ExecutorBoltScheduler.java:257) ~[neo4j-bolt-4.4.2.jar:4.4.2] at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.lambda$scheduleBatchOrHandleError$3(ExecutorBoltScheduler.java:240) ~[neo4j-bolt-4.4.2.jar:4.4.2] at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.69.Final.jar:4.1.69.Final] at java.lang.Thread.run(Thread.java:834) [?:?]

Thank you for your help florentin !

Hello @florentin_dorre,

Did you have a look at my issue ?
I still can't solve it and I don't know why...

Thank you for your help and your support.

Hello @aurelien.facci ,
I missed the notification earlier.
The stacktrace indeed point to an earlier bug in the progress tracking.

Unfortunately, I can only recommend to upgrade the GDS version.

(*There is a slight chance you can also upgrade GDS without the server)