Parties in Navigator do not allow creation of contracts

Hello community,

very new to DAML, trying to test the navigator. I have a parties list defined and when I hit $daml start the navigator pops out all is well. Then I go to the templates and click on mine. When I try to submit the creation of a contract out of that template it fails with the following message in the navigator.log:

16:53:02.629 [da-ui-backend-akka.actor.default-dispatcher-12] INFO c.d.n.s.platform.PlatformSubscriber - Command ‘4efd13bf0978b4ac’ completed with status ‘CommandStatusError(INVALID_ARGUMENT,INVALID_PARTY_IDENTIFIER(8,1f621c42): The given party is not a valid Canton party identifier: Unable to parse party: Invalid unique identifier Achilles with missing namespace.)’. akkaAddress=akka://da-ui-backend, sourceThread=da-ui-backend-akka.actor.default-dispatcher-10, akkaSource=akka://da-ui-backend/user/$a/party-Thanos, sourceActorSystem=da-ui-backend, akkaTimestamp=15:53:02.629UTC

I have the same behaviour, even in the create-daml-app example. Is this a bug? Thanks in advance!

Sry, forgot to mention that if I type achilles instead of Achilles in the template form (Achilles with capital is the party name as set in the daml.yaml file) then it gets accepted, but then the signatory value collapses with this error message:

17:24:16.202 [da-ui-backend-akka.actor.default-dispatcher-4] INFO c.d.n.s.platform.PlatformSubscriber - Command ‘25df7691b831b1c7’ completed with status ‘CommandStatusError(INVALID_ARGUMENT,DAML_AUTHORIZATION_ERROR(8,c22113a7): Interpretation error: Error: node NodeId(0) (8783387c787d56545ce461588e99a886dfd873bec8819f2c6cdc310474b9a3f9:User:User) requires authorizers achilles, but only Achilles were given)’. akkaAddress=akka://da-ui-backend, sourceThread=da-ui-backend-akka.actor.default-dispatcher-15, akkaSource=akka://da-ui-backend/user/$a/party-Achilles, sourceActorSystem=da-ui-backend, akkaTimestamp=16:24:16.201UTC

It seems to be some bug with casing

Party ids have changed significantly in Daml 2.0. Instead of working with Alice you’ll now be working with Alice::randomlookingstring where the second part will change across runs. In your case you probably specified parties in your daml.yaml and put in Alice there.

I recommend to take a look at the documentation section on logging into Navigator. For most cases, I recommend to go via user management and create those users in a setup script. Both the default skeleton template as well as create-daml-app include such a setup script. Alternatively, you can delete the parties section from your daml.yaml and only allocate parties in your setup script and disable user management as explained in the docs.

2 Likes