div by zero

I'm not sure if this is a sign of a corrupted database or if this is a real bug:

Running indexer...
Arguments: 
Running indexer for existing blocks and expecting new blocks...
Running indexer in the foreground
call btracker_app.main('btracker_app', 1000000000);
NOTICE:  Last block processed by application: 78898157
NOTICE:  Entering application main loop...
NOTICE:  HAF instance is ready. Exiting wait loop...
NOTICE:  Attempting to process block range: <78898159,78898159>
NOTICE:  Processing balances
NOTICE:  Processing delegations, rewards, savings, withdraws!!!!!!!!!!!!!!!!!!!
ERROR:  division by zero
CONTEXT:  SQL statement "WITH claim_reward_balance_operation AS MATERIALIZED
(
  SELECT 
    (SELECT id FROM hive.btracker_app_accounts_view WHERE name = (body)->'value'->>'account') AS _account,
    ((body)->'value'->'reward_hive'->>'amount')::BIGINT AS _hive_payout,
    ((body)->'value'->'reward_hbd'->>'amount')::BIGINT AS _hbd_payout,
    ((body)->'value'->'reward_vests'->>'amount')::numeric AS _vesting_payout
)
  INSERT INTO btracker_app.account_rewards
  (
  account,
  nai,
  balance,
  source_op,
  source_op_block
  ) 
  SELECT
    _account,
    13,
    _hbd_payout,
    _source_op,
    _source_op_block
  FROM claim_reward_balance_operation
  WHERE _hbd_payout > 0
  UNION ALL
  SELECT
    _account,
    21,
    _hive_payout,
    _source_op,
    _source_op_block
  FROM claim_reward_balance_operation
  WHERE _hive_payout > 0
  UNION ALL
  SELECT
    _account,
    37,
    _vesting_payout,
    _source_op,
    _source_op_block
  FROM claim_reward_balance_operation
  WHERE _vesting_payout > 0
  UNION ALL
  SELECT
    crbo._account,
    38,
  (SELECT ROUND(caar.balance * crbo._vesting_payout / car.balance, 3)
  FROM btracker_app.account_rewards car
  JOIN btracker_app.account_rewards caar ON caar.nai = 38 AND caar.account = car.account 
  WHERE car.nai = 37 and car.account = crbo._account),
    _source_op,
    _source_op_block
  FROM claim_reward_balance_operation crbo
  WHERE crbo._vesting_payout > 0
  ON CONFLICT ON CONSTRAINT pk_account_rewards
  DO UPDATE SET
      balance = btracker_app.account_rewards.balance - EXCLUDED.balance,
      source_op = EXCLUDED.source_op,
      source_op_block = EXCLUDED.source_op_block"
PL/pgSQL function btracker_app.process_claim_reward_balance_operation(jsonb,bigint,integer) line 3 at SQL statement
SQL statement "SELECT btracker_app.process_claim_reward_balance_operation(___balance_change.body, ___balance_change.source_op, ___balance_change.source_op_block)"
PL/pgSQL function btracker_app.process_block_range_data_c(integer,integer,integer) line 111 at PERFORM
SQL statement "SELECT btracker_app.process_block_range_data_c(_block, _block)"
PL/pgSQL function btracker_app.processblock(integer) line 3 at PERFORM
SQL statement "CALL btracker_app.processBlock(__next_block_range.last_block)"
PL/pgSQL function btracker_app.main(character varying,integer) line 40 at CALL