info: Error: Transaction was not mined within 50 blocks, please make sure your transaction was properly send. Be aware that it might still be mined! at /opt/bkzcoin_project/bkzcoin-backend/node_modules/web3-core-method/src/index.js:375:45 at tryCatcher (/opt/bkzcoin_project/bkzcoin-backend/node_modules/web3-core-promievent/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/opt/bkzcoin_project/bkzcoin-backend/node_modules/web3-core-promievent/node_modules/bluebird/js/release/promise.js:497:31) at Promise._settlePromise (/opt/bkzcoin_project/bkzcoin-backend/node_modules/web3-core-promievent/node_modules/bluebird/js/release/promise.js:555:18) at Promise._settlePromise0 (/opt/bkzcoin_project/bkzcoin-backend/node_modules/web3-core-promievent/node_modules/bluebird/js/release/promise.js:600:10) at Promise._settlePromises (/opt/bkzcoin_project/bkzcoin-backend/node_modules/web3-core-promievent/node_modules/bluebird/js/release/promise.js:679:18) at Async._drainQueue (/opt/bkzcoin_project/bkzcoin-backend/node_modules/web3-core-promievent/node_modules/bluebird/js/release/async.js:125:16) at Async._drainQueues (/opt/bkzcoin_project/bkzcoin-backend/node_modules/web3-core-promievent/node_modules/bluebird/js/release/async.js:135:10) at Immediate.Async.drainQueues (/opt/bkzcoin_project/bkzcoin-backend/node_modules/web3-core-promievent/node_modules/bluebird/js/release/async.js:16:14) at runCallback (timers.js:800:20) at tryOnImmediate (timers.js:762:5) at processImmediate [as _immediateCallback] (timers.js:733:5) This error keeps repeating during development both in public testnet and in private net with 1 miner. It makes sense with former, as there are race conditions b/w miners and increasing gas price may help, but why it happens on my private net where transactions are rare and mining difficulty is low?
I use web3js send method to send 2 types of transactions:
/** executes contract method by creating transaction * @param {string} from - payer address * @param {string} to - payee address * @param {int} amount - number of tokens * @param {string} type - transaction type */ transferTokens(from, to, amount, type) { if (type === 'transfer_to_admin' || type === 'transfer_from_user') { return this.contract.methods.transferFrom(from, to, amount).send({ from }) .catch((err) => { logger.info(err); return Promise.reject(err); }); } if (type === 'transfer_from_admin') { return this.contract.methods.transfer(to, amount).send({ 'from': this.coinbase }) .catch((error) => { logger.info(error); return Promise.reject(error); }); } } where transfer and transferFrom are Solidity functions implemented by ERC20 standard.
Anyone knows how to avoid/handle this error?