diff --git a/.changeset/selfish-dryers-teach.md b/.changeset/selfish-dryers-teach.md new file mode 100644 index 000000000000..13ce78fb5784 --- /dev/null +++ b/.changeset/selfish-dryers-teach.md @@ -0,0 +1,5 @@ +--- +'@eth-optimism/batch-submitter': patch +--- + +Add status to generic error log to disambiguate errors diff --git a/packages/batch-submitter/src/batch-submitter/batch-submitter.ts b/packages/batch-submitter/src/batch-submitter/batch-submitter.ts index c2e2fb64f861..ffe2674e2c7b 100644 --- a/packages/batch-submitter/src/batch-submitter/batch-submitter.ts +++ b/packages/batch-submitter/src/batch-submitter/batch-submitter.ts @@ -232,11 +232,30 @@ export abstract class BatchSubmitter { gasRetryIncrement: this.gasRetryIncrement, } - const receipt = await BatchSubmitter.getReceiptWithResubmission( - txFunc, - resubmissionConfig, - this.logger - ) + let receipt: TransactionReceipt + try { + receipt = await BatchSubmitter.getReceiptWithResubmission( + txFunc, + resubmissionConfig, + this.logger + ) + } catch (err) { + if (err.reason) { + this.logger.error(`Transaction invalid: ${err.reason}, aborting`, { + message: err.toString(), + stack: err.stack, + code: err.code, + }) + return + } + + this.logger.error('Encountered error at submission, aborting', { + message: err.toString(), + stack: err.stack, + code: err.code, + }) + return + } this.logger.info('Received transaction receipt', { receipt }) this.logger.info(successMessage) diff --git a/packages/batch-submitter/src/batch-submitter/tx-batch-submitter.ts b/packages/batch-submitter/src/batch-submitter/tx-batch-submitter.ts index 713c2a560aa8..8a8a041337fe 100644 --- a/packages/batch-submitter/src/batch-submitter/tx-batch-submitter.ts +++ b/packages/batch-submitter/src/batch-submitter/tx-batch-submitter.ts @@ -301,8 +301,7 @@ export class TransactionBatchSubmitter extends BatchSubmitter { // Fix our batches if we are configured to. TODO: Remove this. batch = await this._fixBatch(batch) if (!(await this._validateBatch(batch))) { - this.logger.error('Batch is malformed! Cannot submit next batch!') - throw new Error('Batch is malformed! Cannot submit next batch!') + return } let sequencerBatchParams = await this._getSequencerBatchParams( startBlock, diff --git a/packages/batch-submitter/src/exec/run-batch-submitter.ts b/packages/batch-submitter/src/exec/run-batch-submitter.ts index e3f21a3139cd..627b63e9647c 100644 --- a/packages/batch-submitter/src/exec/run-batch-submitter.ts +++ b/packages/batch-submitter/src/exec/run-batch-submitter.ts @@ -441,11 +441,29 @@ export const run = async () => { try { await func() } catch (err) { - logger.error('Error submitting batch', { - message: err.toString(), - stack: err.stack, - code: err.code, - }) + switch (err.code) { + case 'SERVER_ERROR': + logger.error(`Encountered server error with status ${err.status}`, { + message: err.toString(), + stack: err.stack, + code: err.code, + }) + break + case 'NETWORK_ERROR': + logger.error('Could not detect network', { + message: err.toString(), + stack: err.stack, + code: err.code, + }) + break + default: + logger.error('Unhandled exception during batch submission', { + message: err.toString(), + stack: err.stack, + code: err.code, + }) + break + } logger.info('Retrying...') } // Sleep