billowy-magician-58884
08/22/2025, 11:07 AMbrief-egg-61061
08/22/2025, 11:07 AMbrief-egg-61061
08/22/2025, 11:07 AM"identifier": true
under the appropriate credential method in the schema. Your schema does this for both email
and phone_number
under "password"
and "code"
strategies, which is correct in principle. 2. Field Names and Required Fields: Your schema requires both "email"
and "phone_number"
. If either is missing in the registration payload, registration will fail due to missing required fields, but this would not trigger a "no identifier found" error specifically. 3. Schema Key Formatting: The property key for the Ory extension should be "<http://ory.sh/kratos|ory.sh/kratos>"
, not "<http://ory.sh/kratos|ory.sh/kratos>"
or similar. Using an incorrect key will cause Ory Kratos to ignore the identifier configuration, resulting in the "no identifier found" error. Correct example: json "<http://ory.sh/kratos|ory.sh/kratos>": { "credentials": { "password": { "identifier": true } } }
If you use an incorrect key, Kratos will not recognize the identifier, and the registration flow will fail with the error you described. 4. Recovery via SMS Limitation: According to the knowledge sources, Ory Kratos currently only supports "recovery": { "via": "email" }
and not "via": "sms"
. If you set recovery via SMS, schema validation will fail, but this typically results in a schema error, not a "no identifier found" error. Still, you should remove or change "recovery": { "via": "sms" }
to "recovery": { "via": "email" }
for compatibility reasons, as SMS recovery is not supported at this time [[Github Issue: Recovery via SMS error](https://github.com/ory/kratos/issues/4262)]. Summary of what to fix: - Change all instances of "<http://ory.sh/kratos|ory.sh/kratos>"
to "<http://ory.sh/kratos|ory.sh/kratos>"
. - Remove or change "recovery": { "via": "sms" }
to "recovery": { "via": "email" }"
for the phone_number
field. Example (fixed) snippet: json "phone_number": { "type": "string", "format": "tel", "title": "Phone Number", "<http://ory.sh/kratos|ory.sh/kratos>": { "credentials": { "password": { "identifier": true }, "webauthn": { "identifier": true }, "totp": { "account_name": true }, "code": { "identifier": true, "via": "sms" }, "passkey": { "display_name": true } }, "recovery": { "via": "email" }, "verification": { "via": "sms" } }, "maxLength": 320 }
Make sure to apply the same fix to the email
field as well. References: - [Customize identity schema: Identity schema extensions](https://www.ory.sh/docs/kratos/manage-identities/customize-identity-schema#identity-schema-extensions) - [Password login identifier](https://www.ory.sh/docs/kratos/manage-identities/customize-identity-schema#password-login-identifier) - [Github Issue: Recovery via SMS error](https://github.com/ory/kratos/issues/4262) If you correct the property key and avoid unsupported recovery methods, the "no identifier found" error should be resolved.