Getting ParsedProgramError when creating programmable NFTs

I’m trying to create a programmable NFT on Solana using the Metaplex SDK but keep running into issues.

Here’s the code I’m working with:

const nftBuilder = await METAPLEX_CLIENT
    .nfts()
    .builders()
    .create({
      uri: tokenMetadataUri,
      name: nftName,
      sellerFeeBasisPoints: royaltyFee,
      symbol: tokenSymbol,
      creators: creatorsList,
      isMutable: true,
      isCollection: false,
      tokenStandard: TokenStandard.ProgrammableNonFungible,
      ruleSet: null
    });

let { signature, confirmResponse } = await METAPLEX_CLIENT.rpc().sendAndConfirmTransaction(nftBuilder, { commitment: 'finalized' });

The error happens when I try to execute the transaction with sendAndConfirmTransaction(). Here’s what I’m seeing:

ParsedProgramError: The program [TokenMetadataProgram] at address [metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s] raised an error of code [1] that translates to “”.

Anyone know what might be causing this and how to resolve it?

same issue! i had problems with the uri format, be sure it’s correct and accessible. also, check the creators for invalid entries, that can mess things up too. good luck!

I hit this exact error with programmable NFTs last month. The problem’s probably your rule set config. Setting ruleSet: null doesn’t work - programmable NFTs need proper authorization rules to function. Import mplTokenAuthRules and set up a basic authorization rule set using Metaplex’s default. Also check your wallet has enough SOL since programmable NFTs cost more than regular ones (they need extra accounts). Error code [1] is pretty generic but it’s usually authorization or account validation failing.

Interesting problem! Few questions to help narrow this down:

What Metaplex SDK version are you running? I’ve hit weird compatibility issues between versions when dealing with programmable NFTs.

Any other error details in your logs before that ParsedProgramError? Sometimes there’s useful context buried in there.

Since the error hits during sendAndConfirmTransaction() - have you tried sending the transaction manually first? Might give us better error info.

Do regular NFTs work fine with your setup? Trying to figure out if it’s the programmable part or something deeper with your config.

Also, what network - mainnet or devnet? Token metadata program versions sometimes differ between networks and cause headaches.