diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go index 0d97b31afa..091a745737 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go @@ -312,14 +312,14 @@ func (vs *Server) ProposeBeaconBlock(ctx context.Context, req *ethpb.GenericSign rob, err := blocks.NewROBlockWithRoot(block, root) if block.IsBlinded() { block, blobSidecars, err = vs.handleBlindedBlock(ctx, block) + if errors.Is(err, builderapi.ErrBadGateway) { + log.WithError(err).Info("Optimistically proposed block - builder relay temporarily unavailable, block may arrive over P2P") + return ðpb.ProposeResponse{BlockRoot: root[:]}, nil + } } else if block.Version() >= version.Deneb { blobSidecars, dataColumnSidecars, err = vs.handleUnblindedBlock(rob, req) } if err != nil { - if errors.Is(err, builderapi.ErrBadGateway) && block.IsBlinded() { - log.WithError(err).Info("Optimistically proposed block - builder relay temporarily unavailable, block may arrive over P2P") - return ðpb.ProposeResponse{BlockRoot: root[:]}, nil - } return nil, status.Errorf(codes.Internal, "%s: %v", "handle block failed", err) } diff --git a/changelog/ttsao_fix-optimistic-blinded-blocks.md b/changelog/ttsao_fix-optimistic-blinded-blocks.md new file mode 100644 index 0000000000..e125004b9d --- /dev/null +++ b/changelog/ttsao_fix-optimistic-blinded-blocks.md @@ -0,0 +1,3 @@ +### Ignored + +- Return optimistic response only when handling blinded blocks in proposer