Local Replica: NNS Governance Canister Not Found Despite Being Listed as Controller

I am trying to create SNS for my dapp, and when I use sns-testing repo and run dfx sns propose --network local --test-neuron-proposer sns_init.yaml command I get following error.

Error: Failed update call.
Caused by: The replica returned a rejection error: reject code DestinationInvalid, reject message Canister rrkah-fqaaa-aaaaa-aaaaq-cai not found, error code Some("IC0301")

Using identity: "plaintext-identity".
Error: Err(Failed calling the canister

Caused by:
    dfx command exited unsuccessfully. Output { status: ExitStatus(unix_wait_status(65280)), stdout: "", stderr: "" })

despite being I already add the nns as co-controller using following commands

dfx canister update-settings be2us-64aaa-aaaaa-qaabq-cai --add-controller rrkah-fqaaa-aaaaa-aaaaq-cai

dfx canister update-settings be2us-64aaa-aaaaa-qaabq-cai --add-controller r7inp-6aaaa-aaaaa-aaabq-cai

I added both “nns-root” and “nns-governance” as co-controller.

Still I am unable to create SNS of my dapp. Also I can’t any guide or Doc to create SNS, it will be appreciable if someone provide sone resource.

1 Like

Hi @RajnishXCode

Thanks for your interest in sns-testing. Could you please clarify if the observed symptoms occurred while you were following the instructions from the README file? It is essential that one doesn’t skip over any of the steps, including setting up the local network. This will ensure that your network has an operational NNS canister suite up and running.

Please double check that these steps were follower exactly as described, and don’t hesitate to ask follow-up questions in this thread if you get stuck.

PS. Please note that adding some principal(s) / canister ID(s) as controller(s) of your canister does not create / install those canisters.

1 Like

Hi @aterga,

Thank you for your response. We followed the instructions in the README file, but encountered the following issues when launching the NNS-frontend app:

  1. Error: “There was an unexpected error while loading the summaries of all deployed projects. Error converting data from aggregator canister.”
  2. Error: “An error occurred while loading the proposal. Failed to fetch.”

Additionally, when we tried the manual steps, we encountered the following error:

ic-admin: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by ic-admin)

This issue is new and was not observed in earlier attempts.

It would be incredibly helpful if there were a comprehensive and beginner-friendly guide or tutorial explaining the key aspects of SNS local testing and the launch process. This would make implementing SNS for our Dapps much easier.

1 Like

Please check this response,

It seems that the error simply indicates that there are no SNSs created so far. This is expected in early stages of the sns-testing runbook.

Could you clarify if you’ve observed this in the web browser on in the console? Maybe a screenshot would help, too.

Indeed, this seems related to the recent upgrade of the ICP dependency stack — in Docker, we had to bump Ubuntu from 22.04 to 24.04. I suppose running this on your system, you would also need to upgrade glibc.

Assuming you’re on a system with apt as the package manager (Ubuntu, Debian, etc.) Could you try the following:

sudo apt update
sudo apt install libc6

Please let us know how it goes from here, and we’ll do our best to support you.

I recently upgraded my system and the DFX version to ensure compatibility and proper functionality. I meticulously followed the Docker steps outlined in the README file, and each step was executed successfully in the terminal. As demonstrated in the logs below, the proposal creation process appears to have been completed without any issues:

Imported identity: "test-neuron-1-owner__b2ucp-4x6ou-zvxwi-niymn-pvllt-rdxqr-wi4zj-jat5l-ijt2s-vv4f5-4ae".
Using identity: "test-neuron-1-owner__b2ucp-4x6ou-zvxwi-niymn-pvllt-rdxqr-wi4zj-jat5l-ijt2s-vv4f5-4ae".

🚀 Success!
Message from NNS governance: "The proposal has been created successfully."
Proposal ID: 12
Using identity: "default".

However, when I visit the NNS frontend dapp, I cannot find anything related to SNS. I waited over 30 minutes, but nothing relevant appeared.

While I appreciate the available instructions, I find that they are not beginner-friendly and lack clarity. This has resulted in significant difficulties during implementation. Unfortunately, we are operating under time constraints, and a detailed, step-by-step guide or tutorial would be extremely beneficial in helping us proceed efficiently.

Your assistance in providing clearer and more comprehensive guidance would be greatly appreciated. Thank you!

Here are some Screenshots to help you understand my query

Thanks for the additional details, and please bare with me while we diagnose the issue.

I recently upgraded my system and the DFX version to ensure compatibility and proper functionality.

Great, so it sounds like this resolved some of the issues?

I meticulously followed the Docker steps outlined in the README file

Thanks for mentioning this very clearly. (When people say just, e.g., “I followed the readme,” without emphasizing the rigor, it’s usually unclear if every single step was followed without any alterations).

I’ve tried following the instructions myself on a Linux system. They worked as intended, with the only caveat that I had to refresh the sns-testing docker image by running docker pull ghcr.io/dfinity/sns-testing:main.

Here is how the NNS dapp (available at http://qsgjb-riaaa-aaaaa-aaaga-cai.localhost:8080/launchpad/) looked in my setup soon after the basic scenario succeeded.

Could you check if the issue on your side is resolved by running docker pull ghcr.io/dfinity/sns-testing:main?

each step was executed successfully in the terminal

I assume you mean steps 1–6 from Bootstrapping a testing environment via Docker.

As demonstrated in the logs below, the proposal creation process appears to have been completed without any issues

Please note that the part of the logs you mention demonstrate that the proposal for creating an SNS has been created, but not yet adopted or executed.

These logs should be followed by a bunch of

Awaiting Swap to open ...

and finally

Ok
...
Using identity: "participant-000".
...
Using identity: "participant-099".
...
Basic scenario has successfully finished.

Did your logs include all of these markers?

PS.

I find that they are not beginner-friendly and lack clarity.

Yes, the current sns-testing solution has a few known weaknesses. It’s on our agenda to drastically improve sns-testing, but that will take a few months. However, I’m confident that with enough motivation, you can get the existing solution to work for your use case, and we intend to help you succeed with that.

The errors indicate compatibility issues and missing dependencies. Ensure your system has GLIBC_2.39 installed by updating or manually installing it. Verify all dependencies for the NNS-frontend app are up to date by following the README steps closely. Also, check the aggregator canister and proposal fetch configurations for any inconsistencies. While a beginner-friendly guide isn’t available, referring to the Dfinity SDK documentation can provide additional clarity on SNS local testing.

Thank you, guys, for your help, We are now able to launch and test SNS locally, without requiring docker, I upgraded my WSL to the latest version (Ubuntu 24.04.1 LTS) and GLIB to version 2.39 (Ubuntu GLIBC 2.39-0ubuntu8.3. We followed the steps mentioned in the Readme file. And able to launch SNS and participate in the swap process. And we did all with our canisters.

But now facing difficulty in raising a proposal to upgrade the canister code.

As suggested in ICP docs, we need to run the following command to raise a proposal.

quill sns make-upgrade-canister-proposal <PROPOSER_NEURON_ID> --target-canister-id <TARGET_CANISTER_ID> --wasm-path <WASM_PATH> [option]

So I executed the following command :

quill sns --canister-ids-file sns_canister_ids.json make-upgrade-canister-proposal 70d013269e8afdeed54c80fc4fdcd92d70e1a5b3880acf7d9be66aee686b8424 --target-canister-id bd3sg-teaaa-aaaaa-qaaba-cai --wasm-path /home/ezio/Lift_Cash/.dfx/local/canisters/Community_Backend/Community_Backend.wasm --mode upgrade

and I get a long cryptic message printed on my terminal as you can see in the pic attached below.

and there is no proposal listed on the nns-dapp’s front end, as you can see in the pic attached below.

I’d like to share a tip from my experience working with SNS. Please avoid using the Brave browser for testing purposes, as it tends to block numerous functionalities, leading to frequent errors appearing on the browser tab of your NNS dapp. Using a more developer-friendly browser will help ensure a smoother testing experience.