Failed update call

Why do I get this error only on mainnet while on testnet and local it runs fine. I don’t know how to solve it :disappointed_relieved:
I just followed the example code on ICP documentation creating NFT using ICRC-7 standard

Error: Failed update call.
Caused by: The replica returned a rejection error: reject code SysTransient, reject message Ingress message

  public shared (msg) func icrcX_mint(tokens : ICRC7.SetNFTRequest) : async [ICRC7.SetNFTResult] {

    //for now we require an owner to mint.
    switch (icrc7().set_nfts<system>(msg.caller, tokens, true)) {
      case (#ok(val)) val;
      case (#err(err)) D.trap(err);
    };
  };

Update calls go through consensus. Any calls made locally do not go through any consensus.

Do you know what happens if you call other update calls?

Do you know what subnet you are on? You can find out using dfx --verbose deploy --ic

Is there a possible solution?
I have followed the instructions you provided.

developer-journey/level-5/5.4-NFT-tutorial/#creating-an-nft-collection

I followed this code from ICP docs creating NFT using ICRC-7

This is a potentially known error. If you let us know what subnet you are in, it would help us identify the potential issue.

in this subnet:
lspz2-jx4pu-k3e7p-znm7j-q4yum-ork6e-6w4q6-pijwq-znehu-4jabe-kqe

Thank you, appreciate it. Have you tried calling other update calls that is not the mint function? Do you receive error with those calls as well?

No, i only call icrc7().set_nfts inside my mint function, on the testnet or local there are no error

Can you try other update calls and what is the result?

var storedValue : Text = "Initial value";

    public shared func updateValue(newValue : Text) : async () {
        storedValue := newValue;
    };

I called this simple function in the same canister, and got same error

Thank you, I have referred to the team internally and will let you know what we find.

1 Like

Hello, is there any update?

There is a significant demand for the subnet on which your canisters are currently deployed.

Are you only testing this example?

In this case, it might be easiest to redeploy the canister on a subnet with less demand. You can see the subnets here and find one with a lower number for millions of instructions executed per second.

Perhaps try https://dashboard.internetcomputer.org/subnet/yinp6-35cfo-wgcd2-oc4ty-2kqpf-t4dul-rfk33-fsq3r-mfmua-m2ngh-jqe?

You will need to re-create the canisters. Delete your canister-ids.json and .dfx folder.

Then you can reapply using this command:

dfx deploy --network ic --subnet yinp6-35cfo-wgcd2-oc4ty-2kqpf-t4dul-rfk33-fsq3r-mfmua-m2ngh-jqe

You could also explore setting the compute allocation if you do not want to switch to a different subnet. However, I think since you are testing and just checking out the tutorial, deploying to a new subnet is your best option.

Hello there,

Have you tried to redeploy on another subnet?

FYI, we do have an update on next steps if you are looking to stay on the current subnet that your canister is deployed on:

Thank you, I have deployed on your subnet recomendation, and that was running well, great support :+1:

1 Like