Suppress recoverable error for inactive addresses
Description
Previously, consensus nodes were required to always send us shard.realm.num entity IDs in the TransactionRecord. With the EVM equivalence work, contract calls are now allowed against inactive EVM addresses which will result in no changes to state. Since these inactive addresses have never been created on consensus nodes, there's no shard.realm.num ID to convert to and consensus nodes put shard.realm.address in the TransactionRecord. Mirror node attempts to map this back to its numeric form and fails and logs a recoverable error which causes an alert.
Steps to reproduce
https://hashscan.io/testnet/transaction/1714759950.957066003 https://hashscan.io/testnet/account/0x7e8a489e17fc9eaec4a4b0ade5acf7f31eb5b961?pt=1
Additional context
Recoverable Error Logs for testnet-na/testnet/mirror-importer-544d7857c7-f9kdk have reached 2 error messages/s in a 1m period
2024-05-10T22:12:00.241Z ERROR pool-12-thread-2 c.h.m.i.util.Utility Recoverable error. Entity not found for EVM address 7e8a489e17fc9eaec4a4b0ade5acf7f31eb5b961
2024-05-10T22:12:00.241Z ERROR pool-12-thread-2 c.h.m.i.util.Utility Recoverable error. Invalid contract id for contract result at 1714759950957066003
receipt {
status: SUCCESS
contractID {
evm_address: "~\212H\236\027\374\236\256\304\244\260\255\345\254\367\363\036\265\271a"
}
exchangeRate {
currentRate {
hbarEquiv: 30000
centEquiv: 340516
expirationTime {
seconds: 1714762800
}
}
nextRate {
hbarEquiv: 30000
centEquiv: 338602
expirationTime {
seconds: 1714766400
}
}
}
}
transactionHash: "\355q\025l\310\032\305\r\257\263\347\271\206\300\026\367\235\2359\325\2226 \362\216\263\000}E]\r\035&\225\301v:\376O-(\033NAo\233\370\a"
consensusTimestamp {
seconds: 1714759950
nanos: 957066003
}
transactionID {
transactionValidStart {
seconds: 1714759942
nanos: 398861689
}
accountID {
accountNum: 3038782
}
}
transactionFee: 948003430
contractCallResult {
contractID {
evm_address: "~\212H\236\027\374\236\256\304\244\260\255\345\254\367\363\036\265\271a"
}
bloom: "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
gasUsed: 12000000
gas: 15000000
functionParameters: ".\230&\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nIGNHMKYBAT\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
sender_id {
accountNum: 3432148
}
signer_nonce {
value: 109
}
}
transferList {
accountAmounts {
accountID {
accountNum: 3
}
amount: 1719755
}
accountAmounts {
accountID {
accountNum: 98
}
amount: 941655308
}
accountAmounts {
accountID {
accountNum: 800
}
amount: 4628367
}
accountAmounts {
accountID {
accountNum: 3038782
}
amount: -48003430
}
accountAmounts {
accountID {
accountNum: 3432148
}
amount: -900000000
}
}
ethereum_hash: "\206\370\033/\230\032\360z\201\2206\330\212\263\212F\252\037\204;v\f0i= \2558m\"7\241"
Hedera network
testnet
Version
v0.103.0
Operating system
None