in-solana by Supanode

MaxLoadedAccountsDataSizeExceeded

The transaction references accounts whose combined data size exceeds the per-transaction limit of 64 MiB.

Common causes

  1. Too many large accounts. The transaction touches accounts with large data buffers (programs, large PDAs, or accounts with extensive stored data).
  2. Address Lookup Tables expanding to many accounts. A transaction using an Address Lookup Table that resolves to many large accounts.
  3. Program account included. Program executable accounts can be large (up to 10 MiB each). If a transaction loads multiple programs, the data size adds up quickly.

How to fix

  1. Reduce the number of accounts. Split the transaction into multiple smaller transactions, each touching fewer accounts.
  2. Use smaller accounts. If your program design allows it, partition large accounts into smaller ones and only load the subset needed for each transaction.
  3. Check which accounts are largest. Use getAccountInfo to check the data.length of each account your transaction touches.

Limits

LimitValue
Max loaded accounts data per transaction64 MiB
Max account data size10 MiB
Max accounts per transaction256 (with Address Lookup Tables)

FAQ

What counts toward the loaded data size? Every account referenced by the transaction — including the program accounts being invoked, all instruction accounts, and the fee payer.

Does account data size affect transaction fees? Not directly. Transaction fees are based on signatures and compute units, not on the amount of account data loaded. However, accounts do need to be rent-exempt, which depends on their data size.

Can I increase the limit? No. The 64 MiB limit is enforced by the runtime and cannot be changed per transaction.

Error text variants

  • MaxLoadedAccountsDataSizeExceeded
  • max loaded accounts data size exceeded
  • loaded accounts data size limit exceeded

Updated: