# Version 9.1.202.2 (Support Release - 7 January 2026)

#### **System Access**

##### Update email confirmation logic for user import and update to allow a user without an email to log in (#142626)

**Problem**

- A user without an email address cannot log in because the email has not been confirmed

**Solution**

- In ImportUsersCommandHandler, email is now considered confirmed if the user has no email address
- In UpdateUserCommandHandler, email is always marked as confirmed
- These changes ensure consistent handling of email confirmation status during user import and update operations

---

#### **Imports**

##### Remove duplicate self-service settings in validation when importing users (#142626)

**Problem**

- Cannot import users when ESS settings are duplicated in the DB

**Solution**

- This pull request addresses the issue of duplicate entries in the `SelfServiceSetup` table and improves the handling of required fields in the user details validation logic. The most important changes are as follows: 
    - Removes duplicate rows in ESS settings, keeping only the most recently edited entry for each unique combination of `FieldSection`, `FieldId`, and `RulesetId`.
    - Updated the construction of the `requiredFields` dictionary in `UserDetailsValidationService.cs` to ensure unique combinations of `FieldSection` and `FieldId` are included, preventing issues caused by duplicate settings.

---

#### **Performance Management**

##### Resolved KPI not being able to delete (#143253)

**Problem**

- Primary contract bool value not being sent through, which caused an invalid object

**Solution**

- Add a change to pass through the primary contract's bool value

---

#### **People Management**

##### Re-add transfer person JS logic (#143186)

**Problem**

- The transfer button was removed.

**Solution**

- Re-add it

##### Fix materialisation when a people group has not materialised before | Fix regression bug on people termination (#136729)

**Problem**

- When materialising people groups and the list of people groups to materialise is empty, it only materialises for people groups that have already been materialised in the past.

**Solution**

- When the 'forceSync' parameter is true, refresh for ALL people groups on the ruleset (if an empty people group was received).
- Still, only materialise people groups already materialised when 'forceSync' is false.
- **PLUS** Other issue picked up while testing: 
    - Termination broken due to a regression bug.
    - A new field was added to a model used in a query in the job profiler, but the query was not updated, which results in the query breaking, meaning ultimately, people cannot be terminated anymore.
    - Updated the model to make use of auto properties instead of a constructor, which makes it easier for Dapper to map the query result to the model.

---