Canton unable to parse party id 'MyParty': Invalid unique identifier `MyParty` with missing namespace

Hi team,

Coming back from this topic: Canton Command allocateParty failed: INTERNAL partyParticipant event: PartyAllocationRejected

I have an issue when I’m trying to run my script which uses AllocatePartyWithHint with one participant node which results in below error:

Exception in thread "main" com.daml.lf.engine.script.ScriptF$FailedCmd: Command submit failed: INVALID_ARGUMENT: RoutingInternalError(CN10065-0): Illformed transaction received.; reason=unable to parse party id 'MyParty': Invalid unique identifier `MyParty` with missing namespace., participant=participant1
Daml stacktrace:
submit at c33c6e75ea8df3f6224d900d9d04c8471cdabc6f65848d92f2363b243e6d920a:Demo.Test.Setup:177
	at com.daml.lf.engine.script.Runner.$anonfun$runWithClients$10(Runner.scala:444)
	at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:439)
	at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:53)
	at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:48)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: RoutingInternalError(CN10065-0): Illformed transaction received.; reason=unable to parse party id 'MyParty': Invalid unique identifier `MyParty` with missing namespace., participant=participant1

Could you please advise ?

Thanks in advance!
Jean-Paul

The issue is not coming from your party allocation it comes from a command submission.

It looks like instead of referencing the party id that you get back from allocateParty you hardcoded the party id MyParty probably via partyFromText or via --input-file.

You should never reference specific party ids in your Daml code. Instead either pass them in via --input-file if they have been allocated before, filter them from listKnownParties or use the allocate of allocateParty if you allocated them within the script.

3 Likes

Thanks @cocreature . On that note, we’ve improved the error message here such that in future Canton releases, the error is more descriptive.

1 Like

Problem solved. Thanks you both !