Metadata is still null after uri & metadata resync - Please Help!

Not sure who to contact as we have tried everything on our end, so hoping someone will help here. We have an erc-1155 contract that we changed the uri for a couple of weeks ago. For context, we also utilize storage for metadata internally - outside IPFS We resynced the uri and metadata for all tokenId’s using reSyncMetadata() with the uri flag first, followed by the metadata flag. After realizing that Moralis does not convert the tokenId from hex and keeps the 0’s, we even created a duplicate json at the uri they have cached - exactly matching one in the code posted here. When you go to the uri link, it has the correct metadata, yet when we fetch the nft metadata it still says null. Looking at the data we retrieve it shows that the resyncs have occurred already and the metadata comes back null regardless. We have tried pretty much everything at this point - even upgraded to Pro. Just wondering if there is a very long delay for resync regardless of what is shown in the last sync time. Or, it’s the format of the JSON itself that is preventing Moralis from populating and caching the metadata. Any help would be appreciated as soon as possible. Our users are not happy that they have to go to OpenSea (OpenSea refreshes the metadata immediately and it works fine) to see their NFTs instead of us being able to display the NFTs on our platform. Appreciate the help!

  "owner_of": "0x562d82b4b6d5a8060b3896c0c7943fd3c3ced536",
  "block_number": "50629940",
  "block_number_minted": "47225154",
  "token_hash": "f1ddb72cecf65a16bf1fe986ec2d7788",
  "amount": "1",
  "contract_type": "ERC1155",
  "name": null,
  "symbol": null,
  "token_uri": "https://firebasestorage.googleapis.com/v0/b/justtesting-c24bc.appspot.com/o/1155TokenMetadata%2F0000000000000000000000000000000000000000000000000000000000000001.json?alt=media",
  "metadata": null,
  "last_token_uri_sync": "2023-12-05T01:59:30.891Z",
  "last_metadata_sync": "2023-12-05T01:59:52.032Z",
  "minter_address": "ERC1155 tokens don't have a single minter",
  "possible_spam": false,
  "verified_collection": false
}
  • To follow up, I did try and utilize syncNFTContract() as well as extra precaution. It seems that our contract was never synced … as shown here after calling getNFTContractMetadata()
{
  "token_address": "0x56856c4248b44f22496905886d4702054ad436d9",
  "name": null,
  "symbol": null,
  "contract_type": "ERC1155",
  "synced_at": null,
  "possible_spam": false,
  "verified_collection": false
}

And when I attempt to call syncNFTContract() for the contract I get an empty object as a response. So, this could be the fundamental cause of the issue I guess? But, if I can not sync the contract I am unsure what I can do.

Hi @MrIndemni

Thanks for the report. Let me check this with the devs.

It seems like most of the NFT token Uris are returning 404 error. That could be a reason why the metadata is not getting synced.

Example 404 urls:

https://firebasestorage.googleapis.com/v0/b/justtesting-c24bc.appspot.com/o/1155TokenMetadata%2F0000000000000000000000000000000000000000000000000000000000000fd7.json?alt=media

https://firebasestorage.googleapis.com/v0/b/justtesting-c24bc.appspot.com/o/1155TokenMetadata%2F00000000000000000000000000000000000000000000000000000000000017fc.json?alt=media

https://firebasestorage.googleapis.com/v0/b/justtesting-c24bc.appspot.com/o/1155TokenMetadata%2F00000000000000000000000000000000000000000000000000000000000017fc.json?alt=media

Appreciate the fast response John. Our NFTs are dynamic, so we upload the metadata as soon a users claims their NFT. I understand that the metadata would be Null for NFTs that have yet to be claimed, but if you look at tokenId 1, you can see that even tokens that have metadata are not being updated even after we resync the uri and metadata.

Any update on when a fix for this will happen? Not trying to be pushy here, but we will need to code an entirely different solution if this can’t be remedied soon. Again, appreciate the assistance from anyone on the team or someone else on the forums. We can update our JSON structure or do anything that would be required to make this work - except creating an entirely new smart contract.

Let me check this with the team.
However as an alternate fix you can fetch the metadata directly in your application using the tokenURI.