Skip to content

Commit a6c6047

Browse files
kariyclaude
andauthored
feat(sozo): warn instead of hard error on RPC spec version mismatch (#3402)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 0712777 commit a6c6047

1 file changed

Lines changed: 19 additions & 7 deletions

File tree

bin/sozo/src/utils.rs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,25 @@ pub async fn get_world_diff_and_provider(
120120
let provider = Arc::try_unwrap(provider).map_err(|_| anyhow!("Failed to unwrap Arc"))?;
121121
trace!(?provider, "Provider initialized.");
122122

123-
let spec_version = provider.spec_version().await?;
124-
trace!(spec_version);
125-
126-
if !is_compatible_version(&spec_version, RPC_SPEC_VERSION)? {
127-
return Err(anyhow!(
128-
"Unsupported Starknet RPC version: {spec_version}, expected {RPC_SPEC_VERSION}.",
129-
));
123+
match provider.spec_version().await {
124+
Ok(spec_version) => {
125+
trace!(spec_version);
126+
match is_compatible_version(&spec_version, RPC_SPEC_VERSION) {
127+
Ok(true) => {}
128+
Ok(false) => ui.warn(format!(
129+
"Starknet RPC version mismatch: node reports {spec_version}, sozo was built \
130+
against {RPC_SPEC_VERSION}. Continuing anyway; operations may fail if RPC \
131+
methods differ."
132+
)),
133+
Err(e) => ui.warn(format!(
134+
"Could not parse Starknet RPC version '{spec_version}': {e}. Continuing."
135+
)),
136+
}
137+
}
138+
Err(e) => ui.warn(format!(
139+
"Could not query Starknet RPC version: {e}. Continuing; operations may fail if RPC \
140+
methods differ."
141+
)),
130142
}
131143

132144
let chain_id = provider.chain_id().await?;

0 commit comments

Comments
 (0)