diff --git a/src/three-domain-secure/component.jsx b/src/three-domain-secure/component.jsx index 18af40cd..78fb4bad 100644 --- a/src/three-domain-secure/component.jsx +++ b/src/three-domain-secure/component.jsx @@ -115,9 +115,18 @@ export function getThreeDomainSecureComponent(): TDSComponent { onSuccess: { type: "function", alias: "onContingencyResult", - decorate: ({ value, onError }) => { + decorate: ({ props, value, onError }) => { return (err, result) => { - if (err || (result && !result.success)) { + const isCardFieldFlow = props?.userType === "UNBRANDED_GUEST"; + + // HostedFields ONLY rejects when the err object is not null. The below implementation ensures that CardFields follows the same pattern. + + const hasError = isCardFieldFlow + ? Boolean(err) + : // $FlowFixMe[incompatible-use] + Boolean(err) || result?.success === false; + + if (hasError) { return onError(err); }