Applies to: Free and Pro · Location: VentraConnect → Login Methods → Passkey
Most passkey issues fall into one of four categories: the passkey option is not being shown, the browser cannot create a credential, a registered credential cannot authenticate, or the site or account configuration does not match the expected flow.
Passkey option is missing
- Check PHP first. Passkeys need PHP 8.2 or higher with the json, openssl and mbstring extensions. On older PHP the Passkey pane shows “Passkeys require PHP 8.2 or higher. Update PHP to enable passkey login and registration.” and its settings are disabled.
- Confirm Passkey is switched to Active in
VentraConnect → Login Methods. - Login button missing: make sure Show on WordPress login/register → Login form is on in the VentraConnect Settings tab (this also controls passkey login on shortcode pages), and that you are logged out. Passkey buttons are never shown to signed-in users.
- “Set up Passkey” missing on the registration page: WordPress Settings → General → Anyone can register must be on, the VentraConnect Register form toggle must be on, and the Passkey Registration mode must be Login & Register (default).
- Shortcode pages: use
[ventraconnect_sl_social_login]for all active methods, or[ventraconnect_sl_social_login providers="passkey"]for the passkey button only. The shortcode shows sign-in only; new passkey accounts are created from the WordPress registration page. - Make sure you are testing a supported core or Pro integration surface (see section 6 for WooCommerce, LMS and membership).
- Clear page, object, or CDN caches after changing settings.
The Passkeys section of VentraConnect Diagnostics shows whether your PHP version supports passkeys and whether the Passkey method is enabled:
Browser says passkeys are unavailable
Common on-screen messages and what they mean:
http://localhost is accepted for local testing only.- Confirm the public site is using HTTPS.
- Update the browser and operating system.
- Check whether the device has an available authenticator such as Windows Hello, Touch ID, a compatible password manager, phone, or security key.
- Try a full browser rather than an embedded in-app browser or restricted webview.
- On managed devices, check whether enterprise policies block WebAuthn or platform authenticators.
Passkey registration fails
For new sign-ups on the WordPress registration page, the flow is: the visitor enters an email address, receives a confirmation email, clicks the link, creates the passkey, and only then is the WordPress account created.
- After entering an email the visitor always sees “If this email can create a passkey, we will send instructions to continue.” If no email arrives, the address may already have an account (that user should sign in and add a passkey from their profile), or your site’s email delivery may be failing. VentraConnect sends this email with
wp_mail(). - The email subject is “Confirm your email to create a passkey” and the link is valid for 30 minutes.
- “This passkey verification link has expired. Please start again.” or “This passkey verification link is invalid. Please start again.” — restart from the registration page.
- “Creating a new account with a passkey is not available on this site.” — the Passkey Registration mode (or the WordPress registration setting) blocks sign-ups.
- “Passkey setup could not be completed. Please try again.” — a generic failure; retry with another authenticator.
- Repeated requests are rate-limited. Wait a minute before requesting another email.
If registration still fails:
- If the browser offered several options, try a local platform authenticator or another available credential source.
- Clear caches and reload the page after plugin updates or setting changes, in case a stale page or cached script is in use.
- Review the Passkey section of VentraConnect Diagnostics (PHP support and Passkey method status) and copy the diagnostics snapshot if you need to contact support.
Registered passkey does not log in
- Passkeys only work on the domain in your WordPress Address. Confirm you are using the same site/domain where the passkey was registered. After a domain change, users must add new passkeys.
- Confirm the credential is still available to the browser, device, password manager, or hardware key.
- If the credential was removed from the WordPress account, it can no longer authenticate that account through VentraConnect.
- Try another registered passkey or use an appropriate fallback login method.
- If the site domain, environment, or authentication configuration was recently changed, test a newly registered passkey after verifying the current setup.
Unexpected account or duplicate-account behaviour
A passkey is attached to a WordPress user account. Check the surrounding registration flow rather than treating it as only a WebAuthn problem.
Passkey sign-up never creates a second account for an email that already exists. On the WordPress registration page it sends no email and shows the same neutral message. Accounts are created only after the passkey has been created, so abandoned sign-ups leave no pending users.
Do not create duplicate users as a troubleshooting shortcut. If an existing user is stuck, ask them to sign in with another method and add a passkey from their profile.
Passkey works in WordPress but not WooCommerce, LMS or membership
Core WordPress passkeys are a Free feature. Placements in third-party plugins need VentraConnect Pro and the specific supported integration.
- Make sure your Pro licence is active. Without it, no Pro placements load.
- WooCommerce: turn on Show VentraConnect sign-in on WooCommerce pages (off by default) and choose a Login form (My Account and checkout) or Classic checkout placement. The WooCommerce Checkout block and Cart block are not supported: use the classic checkout shortcode (
[woocommerce_checkout]). - LMS and membership: passkeys appear on the integration’s login forms (and supported checkout forms), not on its registration forms. Enable the integration and its login-form placement in the Courses & LMS or Community & Memberships settings.
- Test the actual integration flow instead of assuming
wp-login.phpbehaviour carries over.
See Passkeys in WooCommerce & Integrations for the full list of placements.
What to send support
- VentraConnect Free and Pro version numbers
- WordPress and PHP versions
- Browser and operating system
- The exact page or integration where the issue occurs
- Whether the problem is registration, login, placement, or account creation
- The VentraConnect diagnostics/support snapshot
- Any browser-visible error message
- Whether the issue also happens on the standard WordPress login/profile flow