Severity Revert
·
Sui Framework (0x2)
0x2::dynamic_field::EFieldAlreadyExists (Abort 0)
0x2::dynamic_field::EFieldAlreadyExists(abort 0)
Why Did This Transaction Revert?
Calling dynamic_field::add with a name/key struct that already exists on the parent object.
Smart Contract Revert Point
assert!(!dynamic_field::exists_(&parent.id, name), EFieldAlreadyExists);
💧 Native Sui Move Code & Fix
Move 2024if (!dynamic_field::exists_(&parent.id, key)) {
dynamic_field::add(&mut parent.id, key, val);
} else {
let v = dynamic_field::borrow_mut(&mut parent.id, key);
*v = val;
};Step-by-Step Resolution Checklist
1
Check if field exists using dynamic_field::exists_; mutate existing value instead of adding.
2
Use dynamic_object_field::borrow_mut if modifying existing child object.
Diagnostic Actions
Target Chain:
Recommended Gas Limit:
units
Other Common EVM Reverts
· Move Execution Revert / Error(string)
· Move Execution Abort
· Insufficient Gas Balance
· Gas Budget Too Low
· Object ID Not Found
· Object Version Mismatch / Congestion
· Move Package Not Found
· Type Argument Mismatch
· Cryptographic Signature Invalid
· 0x2::coin::ENotEnoughBalance
· 0x2::coin::EGlobalCoinDoesNotExist
· 0x2::dynamic_field::EFieldDoesNotExist
· 0x2::dynamic_field::EFieldAlreadyExists
· 0x2::kiosk::ELocked
· 0x2::kiosk::ENotOwner
· 0x2::kiosk::EItemNotFound
· 0x2::table::EKeyNotFound
· 0x2::table::EKeyAlreadyExists
· 0x2::balance::EOverflow
· 0x2::balance::ENotEnough
· 0x2::transfer::ESharedObjectAlreadyExists
· 0x2::transfer_policy::ERuleNotSatisfied
· 0x2::package::EUpgradeBadVersion
· 0x2::package::EUpgradeImmutable
· Bytecode Verification Failure
· Module Link Failure
· VM Verification Error
· Authorization Failure
· Insufficient Coin Balance
· DEX Slippage Exceeded
· Object or Record Already Exists
· Invalid Protocol State
· Zero Amount Invalid
· Transaction Expired
· Liquidity Pool Locked
· Arithmetic Overflow
· Arithmetic Underflow
· Sui Kiosk Asset Locked
· Borrow Limit Exceeded
· Account At Liquidation Risk
· Staking Pool Inactive
· Unstake Timelocked
· Transfer Policy Unmet
· DeepBook Order Limit Unfilled
· Storage Rebate Calculation Failure
· Dynamic Field Already Exists
· Dynamic Field Not Found
· Capability Already Consumed
· Shared Object Congestion
· Object Version Too Old
· One-Time Witness Invalid
· Gas Budget Exhausted During PTB
· Epoch Transition In Progress
· zkLogin Ephemeral Key Expired