Rotoo
1
Hello Damlers,
I’m trying to create a contract using the JSON api. In the project I’ve included a set of types that are relatively large resulting a 4MB dar file.
This is the result I get when trying to create a contract:
http://localhost:7575/v1/create
{
"templateId": "DarDistribution:AcceptedDar",
"payload": {
"darOwner": "alice::1220f058ad95458add5a12a9b7381f53ee5135f9f36ce13217b3cf75105fa2cab8c7",
"recipient": "alice::1220f058ad95458add5a12a9b7381f53ee5135f9f36ce13217b3cf75105fa2cab8c7",
"hash": "1220f058ad95458add5a12a9b7381f53ee5135f9f36ce13217b3cf75105fa2cab8c7"
}
}
{
"errors": [
"RESOURCE_EXHAUSTED: gRPC message exceeds maximum size 4194304: 8575058"
],
"ledgerApiError": {
"code": 8,
"details": [],
"message": "gRPC message exceeds maximum size 4194304: 8575058"
},
"status": 429
}
Thank you in advance.
See where package-max-inbound-message-size is set in the example JSON API configuration file; you’ll need to make a similar setting in your own config file.
Rotoo
3
Yes, I’ve already tried this.
server {
address = "localhost"
port = 7576
}
ledger-api {
address = "localhost"
port = 6865
}
package-reload-interval = 10s
max-inbound-message-size = 9194304
package-max-inbound-message-size = 9194304
max-template-id-cache-entries = 1000
health-timeout-seconds = 10
}
The error seems to come from the underlying ledger not the JSON API. So you need to increase the max inbound size there.
1 Like
Rotoo
5
I’ve added the following command to my daml.yaml
scenario-service:
grpc-max-message-size: 14194304
Is there any alternative?
That’s the scenario service not the ledger you’re running the JSON API against. Are you using daml sandbox?
You need to change the max message size as described in Static Configuration — Daml SDK 2.2.0 documentation.
Take a look at the sandbox docs for how you can pass a config file to sandbox.
Rotoo
9
Solved the problem by adding the following lines to daml.yaml:
json-api-options:
- --max-inbound-message-size=9000000
1 Like
The related docs have been moved and give this example:
canton.participants.participant2.ledger-api {
address = "127.0.0.1"
port = 5021
max-inbound-message-size = 20971520
}