From 35cefe57e7432ff38bde7cf2d0ecd40c49cdcd7e Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Fri, 19 Dec 2025 10:27:59 -0600 Subject: [PATCH 1/3] Add metadata timeouts for slow rpc urls --- packages/cli/src/commands/validatorgroup/rpc-urls.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 From 28d91888556912c4d32f0e20f4927f7359ea9911 Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Fri, 19 Dec 2025 10:28:55 -0600 Subject: [PATCH 2/3] docs(changeset): Set a max wait time when fetching community rpc provider metadata urls. --- .changeset/hip-nights-draw.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/hip-nights-draw.md 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. From 8ba97f2ae1aefd1e914a8d0ac5c10fe17ea31d86 Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Tue, 6 Jan 2026 08:25:50 -0600 Subject: [PATCH 3/3] fmt --- packages/cli/src/commands/validatorgroup/rpc-urls.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/cli/src/commands/validatorgroup/rpc-urls.ts b/packages/cli/src/commands/validatorgroup/rpc-urls.ts index 79be1e1d3..d79ed7b23 100644 --- a/packages/cli/src/commands/validatorgroup/rpc-urls.ts +++ b/packages/cli/src/commands/validatorgroup/rpc-urls.ts @@ -102,9 +102,7 @@ export default class RpcUrls extends BaseCommand { try { const metadata = await Promise.race([ IdentityMetadataWrapper.fetchFromURL(accountsWrapper, metadataURL), - new Promise((_, reject) => - setTimeout(() => reject(new Error('Timeout')), 6_000) - ) + new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout')), 6_000)), ]) return metadata.findClaim(ClaimTypes.RPC_URL)?.rpcUrl } catch (_) {