diff --git a/.changeset/hip-nights-draw.md b/.changeset/hip-nights-draw.md new file mode 100644 index 000000000..5b23e2c9d --- /dev/null +++ b/.changeset/hip-nights-draw.md @@ -0,0 +1,5 @@ +--- +'@celo/celocli': patch +--- + +Set a max wait time when fetching community rpc provider metadata urls. diff --git a/packages/cli/src/commands/validatorgroup/rpc-urls.ts b/packages/cli/src/commands/validatorgroup/rpc-urls.ts index 0a8721440..79be1e1d3 100644 --- a/packages/cli/src/commands/validatorgroup/rpc-urls.ts +++ b/packages/cli/src/commands/validatorgroup/rpc-urls.ts @@ -96,14 +96,16 @@ export default class RpcUrls extends BaseCommand { ux.action.start(`Fetching RPC URLs`) const rpcUrls = await concurrentMap(CONCURRENCY_LEVEL, validatorAddresses, async (address) => { const metadataURL = rpcNodeMetaDataUrls.get(address) - if (!metadataURL) { return undefined } - try { - const metadata = await IdentityMetadataWrapper.fetchFromURL(accountsWrapper, metadataURL) - + const metadata = await Promise.race([ + IdentityMetadataWrapper.fetchFromURL(accountsWrapper, metadataURL), + new Promise((_, reject) => + setTimeout(() => reject(new Error('Timeout')), 6_000) + ) + ]) return metadata.findClaim(ClaimTypes.RPC_URL)?.rpcUrl } catch (_) { return undefined