Has anyone seen an error like the following?
ERROR: <class 'pistonapi.exceptions.UnhandledRPCError'>::::4030100 transaction_expiration_exception: transaction expiration exception
I found the logic that raises this exception in https://github.com/steemit/steem/blob/master/libraries/chain/database.cpp and I'm just not sure what is causing my transaction to expire. Has anyone seen this before or know how to prevent a transaction from expiring? I'm just doing a simple vote via the Piston lib.
//Skip all manner of expiration and TaPoS checking if we're on block 1; It's impossible that the transaction is
//expired, and TaPoS makes no sense as no blocks exist.
if( BOOST_LIKELY(head_block_num() > 0) )
{
if( !(skip & skip_tapos_check) )
{
const auto& tapos_block_summary = get< block_summary_object >( trx.ref_block_num );
//Verify TaPoS block summary has correct ID prefix, and that this block's time is not past the expiration
STEEMIT_ASSERT( trx.ref_block_prefix == tapos_block_summary.block_id._hash[1], transaction_tapos_exception,
"", ("trx.ref_block_prefix", trx.ref_block_prefix)
("tapos_block_summary",tapos_block_summary.block_id._hash[1]));
}
fc::time_point_sec now = head_block_time();
STEEMIT_ASSERT( trx.expiration <= now + fc::seconds(STEEMIT_MAX_TIME_UNTIL_EXPIRATION),
transaction_expiration_exception,
"", ("trx.expiration",trx.expiration)("now",now)("max_til_exp",STEEMIT_MAX_TIME_UNTIL_EXPIRATION));
if( has_hardfork( STEEMIT_HARDFORK_0_9 ) ) // Simple solution to pending trx bug when now == trx.expiration
STEEMIT_ASSERT( now < trx.expiration, transaction_expiration_exception, "", ("now",now)("trx.exp",trx.expiration) );
STEEMIT_ASSERT( now <= trx.expiration, transaction_expiration_exception, "", ("now",now)("trx.exp",trx.expiration) );
}