Checklist
Description
The same issue #2733 still occurs after the change #2736.
matchConnection in src/connection/enterprise.js throws a TypeError when an enterprise connection has no domains configured.
Uncaught TypeError: Cannot read properties of undefined (reading 'contains')
The logic needs to handle the domains value being undefined. The List() value applies only if domains property is missing, not if it's undefined.
export function matchConnection(m, email, strategies = []) {
const target = emailDomain(email);
if (!target) return false;
return l.connections(m, 'enterprise', ...strategies).find(x => {
return x.get('domains', List()).contains(target);
});
}
Reproduction
- Configure an enterprise connection (e.g. samlp or oidc) with no domain entries.
- Initialize Lock as part of a third party client auth flow.
- Type any email address into the email field.
- Observe TypeError: Cannot read properties of undefined (reading 'contains') thrown from matchConnection.
Additional context
We are running into this issue as part a third party client auth flow for our MCP server https://auth0.com/ai/docs/mcp/get-started/authorization-for-your-mcp-server
Lock version
14.2.5
Which browsers have you tested in?
Chrome
Checklist
Description
The same issue #2733 still occurs after the change #2736.
matchConnection in src/connection/enterprise.js throws a TypeError when an enterprise connection has no domains configured.
The logic needs to handle the
domainsvalue being undefined. TheList()value applies only ifdomainsproperty is missing, not if it's undefined.Reproduction
Additional context
We are running into this issue as part a third party client auth flow for our MCP server https://auth0.com/ai/docs/mcp/get-started/authorization-for-your-mcp-server
Lock version
14.2.5
Which browsers have you tested in?
Chrome