diff --git a/yarn-project/bb-prover/src/bb/execute.ts b/yarn-project/bb-prover/src/bb/execute.ts index 6c2d6874255..2b3554c7723 100644 --- a/yarn-project/bb-prover/src/bb/execute.ts +++ b/yarn-project/bb-prover/src/bb/execute.ts @@ -435,7 +435,7 @@ export async function generateAvmProof( return { status: BB_RESULT.FAILURE, reason: `Failed to generate proof. AVM proof for TX hash ${input.hints.tx.hash}. Exit code ${result.exitCode}. Signal ${result.signal}.`, - retry: !!result.signal, + retry: result.signal === 'SIGKILL', // retry on SIGKILL because the oomkiller might have stopped the process }; } catch (error) { return { status: BB_RESULT.FAILURE, reason: `${error}` }; diff --git a/yarn-project/prover-node/src/job/epoch-proving-job.ts b/yarn-project/prover-node/src/job/epoch-proving-job.ts index 817b9e47ce0..41604a79591 100644 --- a/yarn-project/prover-node/src/job/epoch-proving-job.ts +++ b/yarn-project/prover-node/src/job/epoch-proving-job.ts @@ -203,7 +203,9 @@ export class EpochProvingJob implements Traceable { return; } this.log.error(`Error running epoch ${epochNumber} prover job`, err, { uuid: this.uuid, epochNumber }); - this.state = 'failed'; + if (this.state === 'processing' || this.state === 'awaiting-prover' || this.state === 'publishing-proof') { + this.state = 'failed'; + } } finally { clearTimeout(this.deadlineTimeoutHandler); await this.epochCheckPromise?.stop();