Troubleshooting
Common problems in Dynamics 365 HR and how to resolve them. Use the contents list on the right to jump to a section, or press Ctrl+F to search this page.
Navigating D365 HR
I can't sign in to D365 HR
Cause — A personal or non-GEMS Microsoft account is being used, or the portal link is wrong.
Fix — Sign in with your GEMS Microsoft 365 email address. The portal URL is provided by your system administrator. Where single sign-on is in use and you are already signed into Microsoft on the device, you are signed in automatically.
The Human Resources module isn't in the module list
Cause — Module visibility depends on the security roles attached to your account.
Fix — Use the search bar at the top of the screen to search for the form by name. If it still doesn't appear, contact your system administrator to confirm your role.
The navigation pane has disappeared
Cause — The pane has been collapsed.
Fix — Click the hamburger menu (☰) at the top-left of the screen to expand it again. The Home icon in the pane returns you to your home page at any time.
My changes aren't saving
Cause — The record is not in edit mode. Most D365 forms open read-only.
Fix — Click Edit in the Action Pane, make your changes, then click Save. The Back, Save/Edit, and New buttons stay anchored at the top of the record as you move between tabs.
Questionnaires
The questionnaire I want isn't in the Questionnaire field
Cause — A questionnaire must already exist in the system before it can be scheduled.
Fix — Create the questionnaire first, then return to Questionnaire ▸ Distribute ▸ Questionnaire schedules and select it.
Employees can't see the questionnaire in ESS
Cause — The schedule hasn't been started, the current date sits outside the schedule window, or the recipients weren't set.
Fix — Open the schedule and check three things: that Setup details names the right people, teams or business segments; that today's date falls between the Start date and End date; and that Start has been clicked to activate the schedule.
The questionnaire went to the wrong schools
Cause — Recipients are chosen in Setup details by person, team or business segment. Schedules are normally created in the GCO entity and can be released to one school or across all companies.
Fix — Reopen Setup details on the schedule and correct the selected teams or business segments.
An employee isn't showing on the intentions inquiry
Cause — The Employee Intention Survey Result form only lists employees who answered Yes to the intention-to-leave question.
Fix — Check whether the employee has submitted the Intention Questionnaire at all. Responses appear live as employees submit through ESS.
I can't edit the fields on an intentions record
Cause — Most fields on the Employee Intention Survey Result form are read-only by design.
Fix — Click Edit in the Action Pane. Only Retention Status and Comments can be changed.
The offboarding exit survey hasn't been issued
Cause — The exit survey is generated by a batch job that only picks up employees who have been assigned an offboarding checklist.
Fix — Confirm the employee has an active offboarding checklist, then run Questionnaire ▸ Periodic Question ▸ Questionnaire Schedule for Offboarding Employee. The batch can also be scheduled to run nightly.
I can't find an employee's questionnaire answers
Cause — Answers are held separately from the schedule record.
Fix — Go to Questionnaire ▸ View and analyse results ▸ Answers by person, filter to the employee, then click Answers in the Action Pane. Use the questionnaire number as your reference.
Onboarding
No onboarding checklist was applied when the hire completed
Cause — Either no default checklist is nominated in HR parameters, or the action type used for the hire doesn't have the checklist flag enabled.
Fix — Check both: Human Resources parameters ▸ Recruitment must name an Onboarding checklist, and the relevant entry in Personal action types must have Apply onboarding checklist enabled.
Only one member of the group received the task
Cause — Checklist tasks route to the group's primary member, not to everyone in the group.
Fix — This is expected. To change who receives tasks, right-click the group, choose View Details, select the correct member, and click Make Primary.
The task went to someone outside the group
Cause — The primary group member has an active delegation configured.
Fix — Delegated tasks route automatically to the delegate. Check the primary member's delegation settings if this wasn't intended.
An employee can't complete a task in ESS
Cause — The task has a dependency on another task that hasn't been finished.
Fix — The task detail view in ESS shows which tasks are blocking progress and who is responsible for them. The task unlocks once all dependencies are complete.
A task is appearing for the wrong school
Cause — The task's Company field is either set to the wrong legal entity or left blank. Tasks with no company set apply to all schools.
Fix — Open the task in the checklist and set Company to the specific legal entities the task should apply to.
I can't see the employees I want when building a user group
Cause — User groups are scoped by legal entity. Employees at other schools aren't visible in the current context.
Fix — Switch legal entity context to the relevant school, or use the position, job title and name filters to narrow the visible list.
The task due dates are wrong
Cause — Onboarding and pre-onboarding checklists calculate dates differently.
Fix — Onboarding tasks use due date offset from start date — days after the employee starts. Pre-onboarding tasks use an offset date — days before the target date set when the checklist is applied. Check which type of checklist you're editing.
Only pre-onboarding checklists are available on the worker action
Cause — The Process type in the checklist assignment dialog is set to Pre-onboarding.
Fix — This is expected — only checklists matching the selected process type are listed. The onboarding checklist is applied automatically once the worker action is fully approved and completed.
Visa and Work Authorisation
A visa type or profession is missing from the dropdown
Cause — Dropdown values come from the Visa master setup tables, which were pre-loaded during migration.
Fix — Add the missing value under Human Resources ▸ Setup ▸ Visa master — Visa Type, MOL Profession, MOE Profession, or Contract Type as appropriate — then click Save.
I can't tell the profession codes apart in a dropdown
Cause — Codes on their own are ambiguous.
Fix — Descriptions are displayed alongside codes in every dropdown selection. If a description is missing, add it to the profession record in the Visa master setup.
No expiry alerts are appearing for an employee's documents
Cause — Alerts are driven by the saved expiry date and the threshold configured for that document type.
Fix — Confirm the expiry date is recorded on the visa or identification record. Thresholds — how far ahead the alert triggers — are configured per document type in system setup, so a passport alert may start 50 days out while another type starts closer to expiry.
The Expiring Records tile is empty
Cause — No documents currently fall within the configured expiry threshold.
Fix — No action needed. Open Human Resources ▸ Workspaces ▸ Personnel management to see the tiles for each document type.
The ABC Category field won't let me change it
Cause — ABC Category is derived from the visa type.
Fix — Change the Visa Type on the worker action and the ABC Category updates automatically.
The applicant's passport details didn't carry over to the new employee
Cause — Identification records carry over to the Pending Worker Visa Information form, but only publish to the employee record when the worker action is completed.
Fix — Open Pending Worker Visa Information, find the worker, and click View Documents to confirm the records are present. Then complete the worker action through the standard workflow. Afterwards, verify in Employee Visa Information and in the employee's Person Identifications.
A worker isn't listed on the Pending Worker Visa Information form
Cause — The form only holds pending worker actions that are not yet complete.
Fix — If the worker action has already been completed, look at the employee record instead. If the hire hasn't been initiated, start the worker action first.
HR Requests
A request type isn't showing in ESS
Cause — The WebESS display toggle is switched off for that request type.
Fix — Open the request type in Human resources ▸ Setup ▸ HR request types and switch WebESS display on. Request types that HR initiates internally are deliberately hidden from ESS.
Request types are in the wrong order in ESS
Cause — The list is ordered by the ESS display order value.
Fix — Set a lower number to move a request type towards the top of the list, and a high number to push it to the bottom.
Employees are submitting requests without the information we need
Cause — The field is set to Visible but not Mandatory.
Fix — Open Header setup on the request type and switch the Mandatory toggle on for that field. Employees then can't submit until it's completed.
The Attachment option isn't in the field list
Cause — Attachments are available on every request type by default, so the option isn't listed as a configurable field.
Fix — No action needed. Employees can always attach a file to any request.
A submitted request isn't going to anyone for approval
Cause — No approval workflow has been assigned to the request type.
Fix — Open the request type, select the appropriate Workflow from the dropdown, and save.
New submissions aren't appearing on the HR Request form
Cause — The list holds its loaded state.
Fix — Click Refresh on the HR Request form to pull in new submissions. Each has a system-generated request number.
The status still shows as pending in ESS after I completed the request
Cause — The ESS cache refreshes on a five-minute cycle.
Fix — Allow 3–5 minutes for the updated status to appear. This delay is by design.
The employee says they can't see our response
Cause — The response was recorded somewhere other than the field ESS surfaces.
Fix — Enter your response in the HR notes field. That text is what the employee sees on their completed request. Any file you add with Attach is downloadable by the employee from the same place.
Probation
No probation review was generated for an employee
Cause — One of several things stops the batch creating a review: the review date falls outside the horizon, the date has already passed, the employee is excluded, or the batch hasn't run.
Fix — Check in order — that Exclude from Probation is set to No on the employee record; that the Stage 1 or Stage 2 date falls within the Probation Horizon Days value; and that Generate probation review has run under System Administration ▸ Periodic tasks ▸ Batch. Reviews are not generated retrospectively for dates that have already passed.
The probation dates or template are wrong for an employee
Cause — Probation parameters are set per combination of Staff Level and Default category, and the employee's combination may be configured differently — or may not match the one you expect.
Fix — Check the employee's staff level and category, then review that row's Stage 1 and Stage 2 review days and template in the probation configuration form.
The manager can't find the review
Cause — Reviews are routed into the manager's queue by the batch, not created directly on the employee record.
Fix — The review appears in the manager's ESS queue under Team Probation Review Requests once the batch has run and the Review 1 Generated or Final Review Generated flag is set to Yes.
An employee has passed probation but their status still isn't Confirmed
Cause — Probation status is not updated automatically.
Fix — After a Stage 2 review completes with a Meets Expectations outcome, HR is notified. Open the employee record, go to Work history, and set Probation Status to Confirmed.
The employee wasn't told their Stage 2 outcome
Cause — Where the outcome is Performance Concerns, the workflow routes to HR only.
Fix — This is by design — the employee is not notified. HR takes the appropriate next steps directly.
I need to see who actioned each step of a review
Cause — The review record shows the current status, not the full routing history.
Fix — Open the review in HR Probation Reviews and click View History to trace each action, which workflow conditions evaluated true or false, and when each step completed.
Identification
The Submit button is disabled in ESS when adding an identification document
Cause — An attachment is mandatory for that document type at that company, and no file has been uploaded.
Fix — Upload the supporting file and the Submit button becomes available. To change the rule, update Attachment mandatory for company on the identification type.
Different document types are asking for different fields
Cause — Mandatory fields are configured separately for each identification type.
Fix — This is expected. A passport asks for issue date, end date and place of issue; Khamra asks for an agency rather than a country; medical insurance requires no issuing agency.
An identification rule is applying to the wrong staff
Cause — Rules are scoped by legal entity (company) and by Worker region.
Fix — Open the identification type and check both scoping settings so the requirement only applies to the intended schools or locations.
Benefits
A component isn't showing on the employee rewards statement
Cause — Components with no Reward Type set are excluded from the statement.
Fix — Open the component in Human Resources ▸ Setup ▸ Compensation ▸ Component master, click Edit, set a Reward Type, and save.
A component is showing in the wrong category
Cause — The Reward Type value determines which category the component appears under.
Fix — Change the Reward Type to the correct option — Fixed Allowance, Living, or Other — and save.
I can't tell which components have already been configured
Cause — The component master lists every component regardless of configuration.
Fix — Filter the Reward Type column to where the value is not empty. That shows everything currently included in the rewards statement; clear the filter to find components still to be configured.
Offboarding
I can't assign an offboarding checklist
Cause — The checklist must exist and have a primary task owner before it can be assigned.
Fix — Go to Human Resources ▸ Task Management ▸ Offboarding checklists, select or create the checklist, assign the monitoring group under Assigned to, select a user and click Make Primary, then save.
The offboarding checklist isn't available on the employee's action
Cause — The Process type in the Apply checklist dialog is set to something other than Offboarding.
Fix — In Actions ▸ Checklists ▸ Apply checklist, set Process type to Offboarding, choose the checklist, and click OK.
The offboarding task due dates look wrong
Cause — Task dates are calculated from the target date set when the checklist is applied.
Fix — Set the Target date to match the termination end date entered on the personnel action. Individual task dates are then derived from each task's offset.
Learning
An employee's GEMSU courses aren't showing on their record
Cause — Nothing has been received from GEMSU for that employee, or the message failed to import.
Fix — Open the GEMSU integration log for the employee. If there is no entry, confirm with the GEMSU team that the course was assigned at source. If there is an entry in an error state, raise it with the GEMSU team — the message arrived but couldn't be written to the course tables.
The employee says the course is complete but D365 shows it in progress
Cause — The status update hasn't come through from GEMSU yet.
Fix — Check the integration log for a more recent message against that employee. If the latest message imported successfully and still shows the old status, the source record in GEMSU hasn't been updated.
I can't edit a course record on the employee's tracker
Cause — GEMSU course records are written by the integration and are not maintained by hand in D365.
Fix — Correct the record in GEMSU and let it flow through, or load the correction through the GEMSU course data entity.
I need to see course status across the workforce, not one employee at a time
Cause — The tracker on the employee record is scoped to that employee.
Fix — Use the all-employee GEMSU course form and filter by course status or course type — for example, to list everyone with an outstanding mandatory course.
My Excel import of course data failed
Cause — The most common reason is an employee ID in the file that doesn't match a personnel number in D365.
Fix — Review the failed rows reported against the import project, correct the employee IDs and any field mapping, then re-run just the failures.
Historical course data from before go-live is missing
Cause — The integration carries current course data; it does not backfill history.
Fix — Load the historical records through the GEMSU course data entity. See Import GEMSU course data manually.
Leave
An employee can't see a leave plan in ESS
Cause — Either the plan is hidden at header level, the leave type is restricted, or the employee isn't enrolled.
Fix — Check the ESS visibility flag on the leave plan header, then the restriction on the individual leave type — either one hides the type on its own. If both are set correctly, check the employee's enrolment under Leave and absence on their record.
Leave types appear in the wrong order in ESS
Cause — The dropdown follows the sort order set on each leave type.
Fix — Set the sort order on the leave types so the most commonly requested appear first.
A new starter has no leave plans
Cause — The hire action ran without the leave plan flag, or no plans are configured against their staff level.
Fix — Check that the personnel action type has Update leave and absence plan set to Yes, and that the staff level for that position has leave plans assigned for the legal entity. Enabling the flag afterwards does not retrospectively enrol the employee — the enrolment has to be corrected separately.
A promoted employee kept their old leave plans
Cause — A promotion adds the new staff level's plans alongside the existing enrolment; the old ones go when the previous position is retired.
Fix — Retire the previous position if that is your process. Retiring the position also retires the plans attached to it.
Calendar-change requests are sitting in review instead of auto-approving
Cause — The workflow has no condition on the system generated leave flag.
Fix — Open the Leave and absence request workflow for that legal entity and add the condition that auto-approves requests where system generated leave is Yes.
I moved a holiday but the balance hasn't changed
Cause — Balances recalculate when the system-generated request completes, not at the moment the holiday is moved.
Fix — Wait for the adjustment requests to reach completed, then check the balance again as of a date after the change.
Bulk leave requests were created for the wrong staff
Cause — The filters were cleared or select all was used on an unfiltered list.
Fix — The requests are created and approved immediately, so they have to be cancelled individually. Filter by position type, department or staff category and confirm the selection before clicking Assign leave.
An employee is being asked for a medical certificate on a short absence
Cause — They are still within probation, where a certificate is required from the first day.
Fix — Check their probation status on their work history. The threshold on the leave type only applies once the employee is Confirmed.
An employee can't cancel leave they need reversed
Cause — The leave falls outside the cancellation window, which is measured from the leave start date.
Fix — Cancel it in D365 on their behalf, or adjust the parameter if the window is consistently too short for your schools.
Airfare
No airfare was calculated for an employee
Cause — The most common reason is that no fare record matches the employee. The calculation needs a record in the airfare setup for their legal entity, their route, their ticket class and their ticket type, covering the dates the batch was run for.
Fix — Check the air ticket location from and to fields on the employee's profile against the From city and To city on the fare records for their company. If those match, confirm the employee has a confirmed worker benefit enrolment — eligibility is derived from it, and employees without one are skipped.
A dependent has no calculated line
Cause — The active dependent flag is not set to Yes, the dependent has no valid from date, or the number of active dependents exceeds the entitlement on the benefit enrolment.
Fix — Open Personal contacts on the employee record and check the active dependent flag first — dependents without it are skipped entirely. Then check the valid from and valid to dates, and the entitlement on the enrolment: self + 3 covers three dependents, and a fourth is not calculated.
The amount is less than the full fare
Cause — The entitlement doesn't cover the whole airfare period, so the fare has been reduced by days.
Fix — This is expected. The calculation is the full fare divided by the days in the year and multiplied by the days covered — counted from the employee's employment start date, or from the dependent's valid from date. See Review calculated airfare.
A dependent was paid at two different fares
Cause — Their birth date means they crossed an age group boundary during the period.
Fix — This is expected. The days before the birthday are paid at the lower fare and the days after at the next one, and the line carries the combined amount. Check the bands in Human Resources ▸ Setup ▸ Age group setup if the split doesn't look right.
A newborn was paid short
Cause — The calculation runs from the dependent's valid from date, which is the date the record became valid rather than the date of birth. Employees often add a dependent weeks after the birth, once the paperwork is through.
Fix — Correct the valid from date on the personal contact, delete the employee's existing calculated lines, and run the batch again for that employee.
I can't save a new fare record
Cause — A duplicate check blocks a second record for the same legal entity, the same from and to city, and the same dates.
Fix — Find the existing record for that combination and amend it, or delete it before creating the replacement. The same check applies to rows loaded through the data entity.
The whole year's fares need loading and there are too many to key in
Cause — Records are being created by hand.
Fix — Use the data entity instead. On the Airfare setup form, click Open in Microsoft Office in the Action Pane and select the airfare data entity. The year's rates can be loaded across every legal entity in a single upload. See Set up airfare rates.
I corrected the data but the amounts haven't changed
Cause — The batch writes new lines; it doesn't overwrite the existing ones.
Fix — Delete the employee's existing lines on the calculated airfare form first, then run the batch again for that employee and the same period.
An employee covered for almost the whole of a leap year got the full fare
Cause — The daily rate is the fare divided by 365 regardless of how long the period actually is. In a 366-day period the days covered are counted for real but still divided by 365, so the last day or two of cover makes no difference to the amount.
Fix — This is how the calculation is specified. A full-period entitlement takes the full fare directly, so it is never overpaid; only part-period lines in a leap-year period round up like this.
The calculated amounts don't reconcile with the fare table
Cause — The from date and to date used when running the batch don't match the period on the fare records.
Fix — The pro-rata is measured against the dates entered on the batch, so a mismatch skews every line. Rerun with the dates set to the airfare period held in the airfare setup.
Performance
The performance review batch ran but no reviews were created
Cause — The creation date falls outside the performance period selected.
Fix — The creation date must sit inside the start and end dates of the period you are releasing. Check it against the period dates and run the job again. See Generate performance reviews.
I can't find the performance review batch job
Cause — It is being searched for by name rather than opened from where the custom jobs are grouped.
Fix — Go to System administration ▸ Periodic tasks ▸ GEMS periodic batch jobs. Probation, performance and talent review jobs are all grouped there.
The batch generated reviews for the whole company
Cause — The personnel number was left blank.
Fix — This is how the job works: a blank personnel number generates for everyone in the legal entity. Enter a personnel number to generate for one employee only.
Reviews were generated but carry the wrong goals
Cause — The review template selected doesn't match the period being released.
Fix — Each period has its own template. Check which template is attached to the run and reissue with the matching one. The goals on a review are copied from the template at the point of generation, so correcting the template afterwards doesn't update reviews already created.
A generated review has no goals on it
Cause — No goal templates have been added to the review template.
Fix — Open the review template and add the goal templates it should carry. See Set up review templates.
The total and average scores are showing as zero
Cause — The scores are calculated when the manager submits the end of year review.
Fix — This is expected before submission. If the scores are still zero after the end of year review has been submitted, check that the rating weight factor is switched on for the review template — without it the calculation doesn't run.
A performance period isn't working
Cause — The performance year is not attached to the period.
Fix — Open the period and set the Performance year. Every period needs its year attached. See Set up performance periods.
PIP and PDP goals have no ratings or weightings
Cause — None are recorded against them by design.
Fix — This is expected. PIP and PDP goals are released ad hoc to support an employee's development and sit outside the weighted scoring.
The goal setting reviews have no manager ratings
Cause — Managers comment at goal setting but do not rate.
Fix — This is expected. Ratings start at the mid year review.
Calibration has nothing to compare against
Cause — No calibration framework has been set up against the performance year.
Fix — Open the performance year, open its calibration framework, and enter the expected percentage for each rating band. See Set up the performance year and calibration framework.
The calibrated rating is blank in the calibration inquiry
Cause — The employee has not been calibrated yet.
Fix — This is expected until HR calibrates them. Filtering on blank calibrated ratings gives you the outstanding list. See Monitor the calibration inquiry.
Ratings were released to the manager but the employees still can't see them
Cause — The manager has not published to their direct reports yet.
Fix — Release to manager and publish to employees are two separate steps. Check the released to direct reports flag in the calibration inquiry to find the managers who still have a step outstanding.
I can't place the same measure in two boxes on the matrix
Cause — A value can only be defined once across the growth and performance matrix.
Fix — Clear the value from its existing box before placing it in the new one.
A matrix move in ESS hasn't appeared on the employee record
Cause — The update isn't instant.
Fix — Allow a moment and refresh. The placement is written to the employee's talent review record under the Work tab. See View talent review records.
Time and Attendance
An employee's attendance shows no work duration or overtime
Cause — The attendance log holds the raw punch records only. Durations, regular minutes and overtime are calculated by the summary batch job.
Fix — Run Time and attendance ▸ Periodic tasks ▸ SQ attendance summary. In normal operation this is a recurring batch, so check with your administrator whether the schedule has stopped. See Run the attendance summary batch job.
I corrected an attendance log but nothing changed
Cause — Editing the log alone does not recalculate anything downstream.
Fix — Re-run SQ attendance summary after saving the correction, then check the attendance details. See Adjust an attendance record.
An employee doesn't appear in attendance details or overtime details
Cause — The forms only show people in your line or your attendance or overtime hierarchy. This is a deliberate restriction.
Fix — Toggle between the Line and Hierarchy views. If they appear in neither, they are not assigned to you — check the hierarchies on their position. See Assign attendance and overtime managers to a position.
Overtime records aren't showing for an employee who worked extra hours
Cause — Either their staff level isn't flagged as overtime applicable, or the overtime falls below the minimum threshold.
Fix — Check Overtime applicable on their staff level and Eligible for overtime on their employment record, then check the minimum overtime value in Human resource shared parameters. Anything below that value is excluded by design.
The overtime details form looks like it's missing most employees
Cause — A filter on the overtime minutes column excludes everyone with no overtime.
Fix — This is expected. The form is a working list of employees with overtime, not a full roster.
HR approval is empty
Cause — Only records the manager has already approved reach HR.
Fix — Check whether the manager has approved in ESS or in the overtime details form. Overtime moves manager ▸ HR ▸ finance, and each stage only sees what the stage before approved. See Complete the HR and finance overtime approvals.
Finance approval doesn't show records HR approved
Cause — HR's approval wasn't saved.
Fix — Reopen the HR approval form, approve the records, and click Save before moving to finance.
An employee has a punch in but no punch out
Cause — One half of the pair is missing from the feed.
Fix — The day is listed on the Missing attendance form. Establish the correct time and amend the attendance log, then re-run the summary job. See Review missing attendance.
Re-running Generate attendance logs will duplicate my data
Cause — Assumed, but not the case.
Fix — Re-running over the same period with the same parameters does not create duplicates. Existing records are left unchanged and only missing days are regenerated. See Generate attendance logs.
The attendance import warns that the entity isn't mapped
Cause — Some columns in the file aren't mapped to entity fields.
Fix — Map the outstanding fields — the code remark in and out, the timestamp, and the device ID and device name — then apply the mapping and import. See Import attendance data.
A newly hired employee has Eligible for overtime set to No
Cause — Either the staff level wasn't flagged when the worker action completed, or the position's staff category doesn't match a flagged one.
Fix — The flag is written as the hire worker action completes, so flagging the staff level afterwards doesn't backfill it. Amend Eligible for overtime on the employee's employment record directly. See Set overtime eligibility on staff levels.
A change made in D365 isn't showing in ESS
Cause — ESS refreshes on an interval rather than instantly.
Fix — Allow about five minutes and refresh. The interval is deliberate — the attendance feed arrives once a day, so a shorter refresh would cost performance for no benefit.