diff --git a/packages/api/src/base/Init.ts b/packages/api/src/base/Init.ts index 6e96ed71656..6295de233e7 100644 --- a/packages/api/src/base/Init.ts +++ b/packages/api/src/base/Init.ts @@ -412,7 +412,8 @@ export abstract class Init extends Decorate { : await firstValueFrom(this._rpcCore.state.call('Metadata_metadata_versions', '0x')); const versions = typeRegistry.createType('Vec', metadataVersionsAsBytes); - metadataVersion = versions.reduce((largest, current) => current.gt(largest) ? current : largest); + // For unstable versions of the metadata the last value is set to u32 MAX in the runtime. This ensures only supported stable versions are used. + metadataVersion = versions.filter((ver) => SUPPORTED_METADATA_VERSIONS.includes(ver.toNumber())).reduce((largest, current) => current.gt(largest) ? current : largest); } catch (e) { l.debug((e as Error).message); l.warn('error with state_call::Metadata_metadata_versions, rpc::state::get_metadata will be used');