I am trying to add user when they try to log in with SSO. However, they are always getting error that duplicate key value violates unique constraint "mail_channel_partner_partner_unique"
DETAIL: Key (channel_id, partner_id)=(1, 6973) already exists
partner_id is already taken by other user, so Odoo is not creating new one properly.
Even when trying to create partner first, then add the partner to user creation, it is not taking it properly. Sample code:
if not user:
user_vals = {
'name': profile["displayName"],
'login': profile["mail"]
}
# Check if there is a partner with the same email, to avoid duplication
existing_partner = request.env['res.partner'].sudo().search([('email', '=', profile["mail"])], limit=1)
if existing_partner:
_logger.debug("Partner exists: %s", existing_partner)
user_vals['partner_id'] = existing_partner.id
user = request.env['res.users'].sudo().create(user_vals)
_logger.debug("User created and linked to existing partner: %s", user)
# Create the user if they do not exist
else:
_logger.debug("No partner, creating one")
partner_vals={'name': profile["displayName"], 'email': profile["mail"]}
new_partner = request.env['res.partner'].sudo().create(partner_vals)
user_vals["partner_id"]=new_partner.id
user = request.env['res.users'].sudo().create(user_vals)
_logger.debug("Creating user with vals: %s", user_vals)