MaxLoadedAccountsDataSizeExceeded
The transaction references accounts whose combined data size exceeds the per-transaction limit of 64 MiB.
Common causes
- Too many large accounts. The transaction touches accounts with large data buffers (programs, large PDAs, or accounts with extensive stored data).
- Address Lookup Tables expanding to many accounts. A transaction using an Address Lookup Table that resolves to many large accounts.
- 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
- Reduce the number of accounts. Split the transaction into multiple smaller transactions, each touching fewer accounts.
- Use smaller accounts. If your program design allows it, partition large accounts into smaller ones and only load the subset needed for each transaction.
- Check which accounts are largest. Use getAccountInfo to check the
data.lengthof each account your transaction touches.
Limits
| Limit | Value |
|---|---|
| Max loaded accounts data per transaction | 64 MiB |
| Max account data size | 10 MiB |
| Max accounts per transaction | 256 (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
Sources
Updated: