An update on a TESTNET bug (doesn't affect mainnet)

Thanks to @baedrik, we’ve found a bug on pulsar-3. The bug caused contracts created and upgraded both between blocks 954,525 and 1,141,770 to brick (can no longer execute or query).

This bug was never present on mainnet, and it also doesn’t affect the upcoming v1.12 upgrade.

To check if your contract was created and upgraded during this time:

secretcli q wasm contract "$ADDRESS"

Output of execute:

failed to execute message; message index: 0: Execution error: Enclave: failed to authenticate secret contract: execute contract failed

Output of query:

Error: got an error finding base64 of the error: regexMatch '[]' should have a length of 2. error: rpc error: code = Unauthenticated desc = Execution error: Enclave: failed to authenticate secret contract: query contract failed

Bug timeline:

  • 2023-09-05 (849200): pulsar-3 was upgraded from v1.10 to v1.11.
  • 2023-09-12 (954525): pulsar-3 was upgraded to add hardcoded admins for the Shade team to test out the hardcoded admins feature. This upgrade contained two bugs:
    • It made it so the hardcoded admins were never set correctly (Link to the bug report: An update on bugs with the v1.11 upgrade).
    • It accidentally ran the previous upgrade’s migration code again, which corrupted the contract_key state.
  • 2023-09-23 (1119200): pulsar-3 was upgraded to fix the hardcoded admins bug
  • 2023-09-25 (1141770): pulsar-3 was upgraded to fix the contract_key state bug. This upgrade contained a bug that prevented the contract_key of contracts created and upgraded both between blocks 954,525 and 1,141,770 from being migrated properly.

Note: contract_key is a plaintext value which is used internally for authentication & encryption purposes.

4 Likes