Troubleshooting
This page covers the most common issues encountered when setting up or using the extension.
"Not allowed" / SecurityError in browser
Symptom: The browser throws NotAllowedError or similar when
attempting passkey login or enrollment.
Causes and fixes:
- Not on HTTPS. WebAuthn requires HTTPS. Exception:
localhostworks over HTTP for development. Check your URL. - Wrong RP ID. The configured
rpIdmust match the current domain. IfrpId: 'example.com'but the page is served fromsub.example.com, registration will fail unless the RP ID is the registrable suffix. - User cancelled the prompt. The user dismissed the authenticator dialog. Not a server error.
- Cross-origin iframe. WebAuthn cannot be invoked from a cross-origin iframe. Ensure the login plugin is on the same origin as the page.
Challenge expired
Symptom: Login fails with "Challenge token expired or invalid."
Fix: The challenge TTL is 120 seconds by default. If users take
longer to authenticate (e.g. slow hardware key), increase
challengeTtlSeconds in the extension settings.
"Invalid origin" error in logs
Symptom: Authentication fails with an origin mismatch in the TYPO3 logs.
Fix: The passkeys.origin in the site's config.yaml must
exactly match the scheme + domain + port combination the browser sees.
Include the port if non-standard (e.g. https://example.com:8443).
Account locked
Symptom: User sees "Account locked" after multiple failed attempts.
Fix: Wait for the lockout duration to expire (default: 15 minutes), or unlock via the backend module: Admin Tools > Passkey Management FE > Users.
Login plugin shows no passkey button
Symptom: The login page shows the standard felogin form but no passkey button.
Checklist:
- Is
nr_passkeys_feactivated? Check Admin Tools > Extensions. - Is the NrPasskeysFe:Login plugin (not felogin) added to the page?
- Is TypoScript included? Check Web > Template > TypoScript Object Browser.
- Are there JavaScript errors in the browser console?
Recovery codes not accepted
Symptom: Recovery code login fails with "Invalid recovery code."
Causes:
- The code was already used. Each code is one-time only.
- The user generated a new set, invalidating all previous codes.
- The code was entered incorrectly (check for
0vsO,1vsl).
Enrollment interstitial appears after every login
Symptom: User is redirected to the enrollment page on every login even after enrolling.
Causes:
- The enrolled credential's
site_identifierdoes not match the current site. This can happen if the RP ID was changed after enrollment. - The TYPO3
SYS.encryptionKeywas changed, invalidating theuser_handlelookup.
Fix: Have the user revoke the old credential and re-enroll. If
encryptionKey was changed, all credentials must be re-enrolled.
Debug logging
Enable TYPO3 debug logging to see detailed authentication errors:
$GLOBALS['TYPO3_CONF_VARS']['LOG']['Netresearch']['NrPasskeysFe'] = [
'writerConfiguration' => [
\TYPO3\CMS\Core\Log\LogLevel::DEBUG => [
\TYPO3\CMS\Core\Log\Writer\FileWriter::class => [
'logFileInfix' => 'nr_passkeys_fe',
],
],
],
];
Log file: var/log/typo3_nr_passkeys_fe_*.log