Skip to main content

Payroll Troubleshooting

Summary

Complete source-backed troubleshooting documentation for Payroll, including confirmed implementation, Transitional boundaries, unsupported capabilities, and safe operating guidance.

Audience

Payroll users, developers, QA and support engineers, architects, product owners, and implementation reviewers.

Overview

Scope and safety

This section provides safe diagnosis for authentication, tenant context, calculation, freeze, unfreeze, advance recovery, payslips, CSV/report export, bank export, projection freshness, outbox delay, notifications, gateway compatibility, database access, and migrations. It uses observable application behavior and source-confirmed boundaries; it does not prescribe direct data repair, secret disclosure, infrastructure commands, or destructive replay.

Start with the decision tree. Preserve the failed response category, correlation reference, tenant, period/run identifiers, selected native or compatibility route family, and timestamps. Redact employee, compensation, bank, government-identifier, and token data before escalation.

Scenario index

Symptom familyFirst guideImportant boundary
Sign-in, unauthorized, wrong portal, or tenant failureAuthentication and tenantUI access does not prove gateway/API authorization
Calculation rejected, empty, or inconsistentCalculation failuresAttendance is required; other projections may be optional
Freeze/unfreeze or recovery failureFreeze, unfreeze, and advanceNative and compatibility lifecycle behavior differs
Payslip, PDF, CSV/report, or bank export failurePayslip and exportNative payslip/bank output requires frozen data
Attendance, leave, expense, or workforce data appears staleProjection freshnessPayroll consumes local projections, not live upstream state
Event or notification appears delayedOutbox and notificationPersisted intent does not prove relay or consumer delivery
Gateway mismatch, persistence, or migration issueGateway, database, and migrationsDo not repair by direct table edits

Triage classifications

  • Foundation: confirmed capability exists, but full operational automation is not established.
  • Transitional: native and compatibility paths can return different lifecycle or error behavior.
  • Requires confirmation: source does not establish ownership, delivery, authorization, or recovery behavior.
  • Not implemented: do not troubleshoot the request as a hidden feature; examples include payment execution and accounting posting.

Documentation map

Resolution standard

A case is resolved only when the expected tenant-scoped state is observable through a supported read path, no duplicate mutation was introduced, and any required outbox/downstream result is independently verified. A successful retry alone is insufficient evidence. If the implementation cannot prove relay ownership, dependency health, or authorization enforcement, close the diagnostic step as Requires confirmation and escalate to the named service owner.

Source References

  • microservices/src/payroll-service/Program.cs
  • microservices/src/payroll-service/Application/PayrollCalculationService.cs
  • microservices/src/payroll-service/Messaging/PayrollReadModelConsumer.cs
  • microservices/src/payroll-service/Infrastructure/Persistence.cs
  • UI/salary-ui/apps/client-hrms-portal/src/App.tsx
  • UI/salary-ui/apps/client-hrms-portal/src/components/AppLayout.tsx
  • UI/salary-ui/apps/client-hrms-portal/src/utils/ProtectedRoute.tsx
  • UI/salary-ui/apps/client-hrms-portal/src/pages/salary/CalculateSalaryPage.tsx
  • microservices/src/payroll-service/Application/PayrollCompatService.cs
  • UI/salary-ui/apps/client-hrms-portal/src/pages/salary/AdvanceSalaryPage.tsx
  • UI/salary-ui/apps/client-hrms-portal/src/pages/hr/PayrollFeaturePages.tsx
  • microservices/src/payroll-service/Application/PayrollOutputsService.cs
  • microservices/src/payroll-service/Infrastructure/PayrollDbContext.cs
  • microservices/src/contracts/Events/PayrollCalculatedEvent.cs
  • microservices/src/contracts/Events/PayslipGeneratedEvent.cs
  • microservices/docs/payroll-cutover-runbook.md
  • microservices/scripts/compare-payroll-parity.ps1
  • microservices/scripts/payroll-cutover-go-no-go.ps1
  • microservices/scripts/smoke-payroll-cutover.ps1

See Also

Keywords

  • Payroll troubleshooting
  • Payroll module

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-15
  • Review cycle: Quarterly