CREATE_CONTRACT fails when the storage is created with EMPTY_BIG_MAP

Environment (Mainnet, test network, build from source, ...)

tezos-client version 8.2 on edo2net testnet

Summary

CREATE_CONTRACT called using as storage a big_map that was just pushed to the stack with EMPTY_BIG_MAP results in a failure.

Minimal example contract:

parameter unit ;
storage address ;
code { DROP;
       EMPTY_BIG_MAP int int;
       PUSH mutez 0;
       NONE key_hash;
       CREATE_CONTRACT
         { parameter unit;
           storage (big_map int int);
           code { CDR; NIL operation; PAIR } };
       NIL operation;
       SWAP;
       CONS;
       PAIR }

Steps to reproduce

originate the contract above with any address and make a unit transfer to its default entrypoint.

Example on the testnet: KT1RK9N1kAj6b44PZuUfTNPSU7hAWDXdWeN8

tezos-client transfer 0 from alice to KT1RK9N1kAj6b44PZuUfTNPSU7hAWDXdWeN8 --entrypoint 'default' --arg 'Unit'

Expected behavior

A transfer to such a contract is successful and an internal operation originates a new contract.

Actual behavior

tezos-client returns an error:

Storage error:
  Cannot initialize defined key 'big_maps/index/12/48/8d/41/ba/69/-2/total_bytes'.
Fatal error:
  transfer simulation failed

Note: additionally typecheck and run script don't report an error, making the contract above seem usable.