Custom program error

0x44

Appears in logs as custom program error: 0x4. Defined by 2 programs: SPL Token, System. Check which program failed in your logs.

Which one is yours?
The log line Program <id> failed: custom program error: 0x4 names the program that returned the code. Match that id to the program below. Anchor programs also print Error Code: … Error Number: … right above the failure.
SPL TokenTokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA

OwnerMismatch

“Owner does not match”

The signer is not the owner (or delegate) of the token account being modified.

Common causes

  • Signing with a wallet that does not own the source token account.
  • Passing the token account's owner field incorrectly, such as using the ATA address itself as the authority.
  • Using a delegate that was revoked or never approved.

How to fix it

  • Read the token account and confirm its owner equals the authority you are signing with.
  • For PDA-owned token accounts, the program must sign with the PDA seeds via invoke_signed.
System11111111111111111111111111111111

MaxSeedLengthExceeded

“length of requested seed is too long”

A seed passed to create_account_with_seed or a PDA derivation is longer than 32 bytes.

Common causes

  • Using a long string as a seed. Each seed is limited to 32 bytes, and you can use at most 16 seeds.
  • Accidentally passing a base58 address string (44 chars) as a seed instead of its 32 raw bytes.

How to fix it

  • Keep every seed at 32 bytes or fewer. Hash longer values first if you need them in a seed.
  • For public keys, pass pubkey.toBytes() (32 bytes), not the base58 string.

Decode another error

Try: