diff --git a/js/examples/nextjs/app/ui.tsx b/js/examples/nextjs/app/ui.tsx index a8ca40a..f9a5339 100644 --- a/js/examples/nextjs/app/ui.tsx +++ b/js/examples/nextjs/app/ui.tsx @@ -142,7 +142,7 @@ export function DemoClient(): ReactElement { const [useStagingConnectBaseUrl, setUseStagingConnectBaseUrl] = useState(false); const [isConnectUrlTooltipOpen, setIsConnectUrlTooltipOpen] = useState(false); - const [worldIdVersion, setWorldIdVersion] = useState<"3.0" | "4.0">("3.0"); + const [worldIdVersion, setWorldIdVersion] = useState<"3.0" | "4.0">("4.0"); const [v4CredentialType, setV4CredentialType] = useState("proof_of_human"); const [presetKind, setPresetKind] = useState("orb"); diff --git a/rust/core/src/bridge.rs b/rust/core/src/bridge.rs index 8b7122a..910471b 100644 --- a/rust/core/src/bridge.rs +++ b/rust/core/src/bridge.rs @@ -636,7 +636,13 @@ impl BridgeConnection { #[cfg(not(feature = "native-crypto"))] let plaintext = decrypt(&self.key_bytes, &iv, &ciphertext)?; - let bridge_response: BridgeResponse = serde_json::from_slice(&plaintext)?; + let bridge_response: BridgeResponse = + serde_json::from_slice(&plaintext).map_err(|_| { + let raw = String::from_utf8_lossy(&plaintext); + Error::BridgeError(format!( + "World App returned an unrecognized response. This may indicate a version mismatch. Raw response: {raw}" + )) + })?; match bridge_response { BridgeResponse::Error { error_code } => Ok(Status::Failed(error_code)),