- Synchronous integration errors are thrown while constructing or mounting Checkout.
- Hosted Checkout initialization and loading errors are sent to
onCheckoutErrorasLynqError.
onPaymentResult with status: "requires_payment_method".
Thrown errors
ConfigError
Thrown when publicKey or clientSecret is missing, environment is invalid, or Checkout is constructed outside a browser.
Check that client-only code creates the instance after hydration and that configuration is available at that time.
MountError
Thrown when:
- The selector does not resolve to an element
- This instance is already mounted
- This instance was destroyed
- Another Lynq Checkout is already mounted on the page
mount() will not resolve these errors.
LynqErrorCode
Use the runtime
error.retryable value rather than maintaining your own retry table in application code.
Customer-facing handling
VERSION, Payment Intent ID, environment, and occurrence time for diagnostics. Do not log keys or client secrets.
Troubleshooting by symptom
Checkout never becomes ready
Checkout never becomes ready
Handle
onCheckoutError, confirm the container remains mounted, and check whether Content Security Policy or network controls block https://checkout.lynq.am. Use debug: true temporarily in a safe environment when diagnosing SDK initialization.Checkout credentials are rejected
Checkout credentials are rejected
Create a fresh Payment Intent and confirm its environment matches the publishable key. Do not retrieve an old Payment Intent expecting to recover its client secret.
No payment methods are available
No payment methods are available
Check Dashboard → Payment methods in the Payment Intent’s environment. At least one configured method must be enabled.
The same page mounts Checkout twice
The same page mounts Checkout twice
In component frameworks, ensure cleanup calls
destroy() and development double-render behaviour does not leave the previous instance mounted.The browser says success but the order is pending
The browser says success but the order is pending
This is expected until your server verifies the webhook. Inspect the delivery in Dashboard rather than fulfilling from the browser result.