Solana Localnet: Error updating program loaded on Genesis using solana-test-validator'
Developers working with the Solana test network often encounter problems when trying to update programs loaded in their original state. In this article, we will take a detailed look at the causes of these errors and consider possible solutions.
Error 1: "Failed to update software downloaded to Genesis"
When trying to update a program loaded into Genesis usingsolana-test-validator’, you may encounter the following error message:
`Error updating software downloaded to Genesis''
This error usually occurs for the following reasons:
- The fieldgenesis_program_id
of the program is specified incorrectly, which leads to incompatibility when trying to apply changes to the program.
- Program dependencies or contracts are linked incorrectly, which leads to problems during the update.
Error 2: "Program failed verification"
The second error message you may see is:
The program did not pass the test''
This indicates that the program encountered an invalid condition due to a missing or incompatiblegenesis_program_id. This can be caused by the following reasons:
- The program code was launched with an invalidprogramId
- Program dependencies or contracts are linked incorrectly
Is it possible to re-deploy a program if it was downloaded to Genesis?
Although it may seem counterintuitive, it is actually possible to re-deploy a program loaded onto a Genesis. However, this requires careful consideration and attention to detail.
When redeploying the program, the following steps must be performed:
- Make sure that thegenesis_program_id
field of the program is specified correctly.
- Make sure all necessary dependencies or contracts are linked correctly.
Here's an example of how to redeploy a program using thesolana-test-validator’ command-line tool:
npx solana-test-validator --json stdout programs/my-program.js 0x123456789abcdef01234567890abcdef123456789abcdef12345678
In this example, the program code is written in JavaScript and bound to a specific identifier of the Genesis program.
Conclusion
Updating programs loaded on Genesis can be difficult and error-prone. However, with careful attention to detail and proper validation of the genesis_program_id field, it is indeed possible to re-deploy a program that was originally loaded into genesis using solana-test-validator. By following best practices and understanding the intricacies of Solana’s testing ecosystem, you can successfully update your programs and ensure their continued success.
Recommendations
- Always check the
genesis_program_idfield when redeploying or updating programs.
- Use the
--json stdoutflag to get verbose testnet output.
- Follow best practices for writing and compiling code in Solana programs.

