Initialization State Collision
Initialization state collision occurs when the initialization logic of a new smart contract fails to properly set up its state, leading to conflicts with the legacy state or unintended behavior. This often happens when the new contract uses the same storage slots as the old one but initializes them with conflicting values.
If not handled correctly, this can overwrite existing data, causing the loss of user balances or collateral. Proper initialization is critical in proxy-based upgrades to ensure that the new logic starts with the correct state.
Developers must carefully design the initialization functions and use clear, non-overlapping storage layouts to prevent these collisions during the migration process.