Failing to deploy contract on ICP mainnet

Hello,

I’m facing an issue related to deployment of a canister.

My canister deployment script:

dfx deploy minter --argument "
      (variant {
        Init = record {
          ecdsa_key_name = \"...\";
          solana_initial_signature = \"...\";
          ledger_id = principal \"$(dfx canister id ledger --network=ic)\";
          solana_contract_address = \"...\";
          solana_rpc_url = \"https://...\";
          minimum_withdrawal_amount = 10_000;
        }
      })
    " --network=ic --identity=MyIdentity --upgrade-unchanged --mode reinstall

Result:

Reinstalling code for canister minter, with canister ID qxeki-kyaaa-aaaak-aknxa-cai
Error: Failed while trying to deploy canisters.
Caused by: Failed while trying to deploy canisters.
  Failed while trying to install all canisters.
    Failed to install wasm module to canister 'minter'.
      Failed during wasm installation call: Candid returned an error: input: 4449444c036d016c01cedfa0a804026d7b010002_2052741aacfc8f7f3e75dae3647b08cf27b8a35284c210cd8caed5bb40067056342067338023bfc795fa88b29808763b0faa60da8d66399ba7fb84a9d4ff2b883562
table: type table0 = vec table1
type table1 = record { 1_158_164_430 : table2 }
type table2 = vec nat8
wire_type: record { 1_158_164_430 : table2 }, expect_type: vec nat8

Can you help me decipher the error message?
I don’t have issue with deployment on my local network!
I’m facing this issue only on IC network!

Try again without --upgrade-unchanged --mode reinstall

I get the same error regardless of whether I provide flags or not.

Run dfx deploy minter --network=ic --identity=MyIdentity on a terminal. I think there is an error in the argument. You can provide an argument later

Ok:

dfx deploy minter --network=ic --identity=MyIndetity

Installing canisters...
Error: Failed while trying to deploy canisters.
Caused by: Failed while trying to deploy canisters.
  Failed while trying to install all canisters.
    Failed to install wasm module to canister 'minter'.
      Failed to create argument blob.
        Invalid data: Expected arguments but found none.

It seems like its mandatory to provide init arguments to the canister.

When I run script on local network:

dfx deploy minter --argument "
      (variant {
        Init = record {
          ecdsa_key_name = \"...\";
          solana_initial_signature = \"5HsCtz953R6DcGxjPAAUEsfJhjNQi7frt5aETR7Vej7YeY1HZ74ooMbztVCRrQfezUdGAXNERpZ47iQhh7rmXf1b\";
          ledger_id = principal \"$(dfx canister id ledger)\";
          solana_contract_address = \"AAJL4DeXnWBNRowWjvpkAgwtAACpz6NfaA1T2p8Hrpy\";
          solana_rpc_url = \"https://solana-mainnet.g.alchemy.com/\";
          minimum_withdrawal_amount = 10_000;
        }
      })
    " --identity=MyIndetity


Installing canisters...
Creating UI canister on the local network.
The UI canister on the "local" network is "bd3sg-teaaa-aaaaa-qaaba-cai"
Installing code for canister minter, with canister ID bkyz2-fmaaa-aaaaa-qaaaq-cai
Deployed canisters.
URLs:
  Backend canister via Candid interface:
    minter: http://127.0.0.1:4943/?canisterId=bd3sg-teaaa-aaaaa-qaaba-cai&id=bkyz2-fmaaa-aaaaa-qaaaq-cai

When I run it on IC:

dfx deploy minter --argument "
      (variant {
        Init = record {
          ecdsa_key_name = \"...\";
          solana_initial_signature = \"5HsCtz953R6DcGxjPAAUEsfJhjNQi7frt5aETR7Vej7YeY1HZ74ooMbztVCRrQfezUdGAXNERpZ47iQhh7rmXf1b\";
          ledger_id = principal \"$(dfx canister id ledger --network=ic)\";
          solana_contract_address = \"AAJL4DeXnWBNRowWjvpkAgwtAACpz6NfaA1T2p8Hrpy\";
          solana_rpc_url = \"https://solana-mainnet.g.alchemy.com/\";
          minimum_withdrawal_amount = 10_000;
        }
      })
    " --network=ic --identity=MyIdentity

Installing canisters...
Installing code for canister minter, with canister ID qxeki-kyaaa-aaaak-aknxa-cai
Error: Failed while trying to deploy canisters.
Caused by: Failed while trying to deploy canisters.
  Failed while trying to install all canisters.
    Failed to install wasm module to canister 'minter'.
      Failed during wasm installation call: Candid returned an error: input: 4449444c036d016c01cedfa0a804026d7b010002_2052741aacfc8f7f3e75dae3647b08cf27b8a35284c210cd8caed5bb40067056342067338023bfc795fa88b29808763b0faa60da8d66399ba7fb84a9d4ff2b883562
table: type table0 = vec table1
type table1 = record { 1_158_164_430 : table2 }
type table2 = vec nat8
wire_type: record { 1_158_164_430 : table2 }, expect_type: vec nat8