Difference between revisions of "Troubleshooting Failed NNS proposals"
m (Andrew.battat moved page Failed NNS proposals - finding the cause to Troubleshooting Failed NNS proposals: Better name) |
m (format) |
||
Line 21: | Line 21: | ||
==== Example Output ==== | ==== Example Output ==== | ||
− | Below is an example JSON output for a failed proposal. In this case, the proposal failed because an existing Node Operator record was being duplicated | + | Below is an example JSON output for a failed proposal. In this case, the proposal failed because an existing Node Operator record was being duplicated. |
+ | |||
+ | Example: | ||
Open that toggle field, enter the proposal number, and click "Call". Once you get the result, you can click on "JSON" to get the Json format, and you can read the failure reason in the output. In this case, the same Node Operator record was already present in the registry when the proposal attempted to re-add the same record. | Open that toggle field, enter the proposal number, and click "Call". Once you get the result, you can click on "JSON" to get the Json format, and you can read the failure reason in the output. In this case, the same Node Operator record was already present in the registry when the proposal attempted to re-add the same record. |
Latest revision as of 17:08, 12 July 2024
Background
Occasionally, a proposal on the Network Nervous System (NNS) may be adopted but fail during execution. This usually happens due to violations of certain invariants (constraints) in the NNS Registry.
Example of a Failed Proposal
An instance of such a failure can be seen in https://dashboard.internetcomputer.org/proposal/125578.
Screenshot
A screenshot of the failed proposal as displayed on the dashboard, for future reference, of https://dashboard.internetcomputer.org/proposal/125578
Identifying the Cause of Failure
As of now, the specific reasons for a proposal's failure are not directly accessible on the proposal page. To find out why a proposal failed, you need to interact with the governance canister directly.
Steps to Follow
- Visit the governance canister page https://dashboard.internetcomputer.org/canister/rrkah-fqaaa-aaaaa-aaaaq-cai.
- Scroll down to the section labeled
get_proposal_info
- Use the toggle field to input the proposal number and click "Call".
- Once the result appears, select "JSON" to view it in Json format.
- The failure reason will be detailed in the output.
Example Output
Below is an example JSON output for a failed proposal. In this case, the proposal failed because an existing Node Operator record was being duplicated.
Example:
Open that toggle field, enter the proposal number, and click "Call". Once you get the result, you can click on "JSON" to get the Json format, and you can read the failure reason in the output. In this case, the same Node Operator record was already present in the registry when the proposal attempted to re-add the same record.
[ { "id": [ { "id": 125578 } ], "status": 5, "topic": 5, "failure_reason": [ { "error_message": "Error executing ExecuteNnsFunction proposal. Rejection message: IC0503: Canister rwlgt-iiaaa-aaaaa-aaaaa-cai trapped explicitly: Panicked at '[Registry] Verification of the mutation type failed with the following errors: [Registry Canister Error. Msg: Key already present: node_operator_record_mbnsu-w4xfc-pmdok-r2lwo-wxfr4-gigu5-4idcm-5uuuy-znvby-biiny-jqe].', rs/registry/canister/src/registry.rs:293:13", "error_type": 12 } ], "ballots": [ [ "14315117116521128082", { "vote": 0, "voting_power": 196565756 } ] ], "proposal_timestamp_seconds": 1699617467, "reward_event_round": 0, "deadline_timestamp_seconds": [ 1699963110 ], "failed_timestamp_seconds": 1699878752, "reject_cost_e8s": 1000000000, "derived_proposal_information": [], "latest_tally": [ { "no": 66258822305525, "yes": "45221535235544100", "total": "45541158736625569", "timestamp_seconds": 1699878752 } ], "reward_status": 1, "decided_timestamp_seconds": 1699878752, "proposal": [ { "url": "", "title": [ "Add mbnsu as a Node Operator of Node Provider: 4jjya" ], "action": [ { "ExecuteNnsFunction": { "nns_function": 8, "payload": "4449444c056c06a795f3ad04018af3a2b108029bf499bd0878bbf187b70c03dddfde9b0d02dba7aaae0d716e716e686d046c020071017901000001011d97289ec1b951d2eceb5cb1e1906a77881899da5298cb6a1c05086e13020a000000000000000001011d78c0a5ff79e51f8d11fa75ad5db01d3d7cee8fecd6658d81c6deb6a20203726731" } } ], "summary": "Node provider “MB Patrankos šūvis” is adding 10 nodes in the rg1 data center" } ], "proposer": [ { "id": "1482125923012887388" } ], "executed_timestamp_seconds": 0 } ]