Sometimes fetching the metadata from ipfs fails, as it (presumably) hasn't been pinned by IPFS yet, and we receive a timeout. Fetching it seconds later manually does return the correct json. The goal of this issue is to come up with a proper solution for this problem.
We have a number of options.
- Make a generalized failed event queue. That means that any event that doesn't get indexed properly would be retried automatically. It's more involved technically, and it would have to preserve the state of events that need to be "re-indexed" across indexer deploys/restarts.
- Setup a cron job (similar mechanism to what we use in the API) that checks for all metadata with
parsed: false periodically, and tries to re-index those specific metadata entries. This would probably be the easiest and most straightforward to implement.
- Keep retrying the current event until ipfs resolves, not a good option as it would block indexing for a undetermined amount of time.
@bitbeckers @pheuberger do you have an opinion on what the best approach would be here?
Sometimes fetching the metadata from ipfs fails, as it (presumably) hasn't been pinned by IPFS yet, and we receive a timeout. Fetching it seconds later manually does return the correct json. The goal of this issue is to come up with a proper solution for this problem.
We have a number of options.
parsed: falseperiodically, and tries to re-index those specific metadata entries. This would probably be the easiest and most straightforward to implement.@bitbeckers @pheuberger do you have an opinion on what the best approach would be here?