Issues found before 13 Oct 2026 · newest first · All dates · Full entries

SatelliteHR — issues found during walkthrough recording

Append-only log. New entries go at the bottom. Environment: https://qa.satellitehr.com, Company Super Admin (Ops Maven). Entries tagged [auto] were appended by the recorder (server 5xx or uncaught page errors) and still need triage.


IssueDescriptionModuleSubmoduleStatusExpected resultActual resultTotal test coverage
ISS-420
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/notifications/unread-countassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/notifications/unread-countNo e2e test
ISS-419
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-418
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=2&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-417
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-416
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-415
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-414
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-413
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-412
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-411
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-410
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-409
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=2&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-408
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-407
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-406
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/assets/my-thingsassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/assets/my-thingsNo e2e test
ISS-405
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/notifications/unread-countassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/notifications/unread-countNo e2e test
ISS-404
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-403
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-402
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextassetsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-401
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mysurveysAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-400
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventssurveysAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-399
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextsurveysAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-377
2 Oct 2026
Surveys: the round's "responded" count stays at 0 after people submitsurveysOpen"2 / … responded" on the round row and in the campaign's progress.responded.the round row still reads "0 / 8 responded". Results → Links & runs shows the two runs as "submitted", and the distributions unlock (min-N 2 met), so the responses are stored, but the round's counter doesn't move.No e2e test
ISS-398
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventssurveysAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-397
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mysurveysAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-376
2 Oct 2026
Surveys: a forced-anonymous survey accepts named respondent linkssurveysOpenfor a forced-anonymous survey or round, reject named respondents or strip the identity, and accept an anonymous respondent kind.201, and the run stores the respondent's name and email against a survey that promises identity is never stored. (kind: "anonymous" is rejected as invalid input, so the only way to make a link by hand is a named one.)No e2e test
ISS-375
2 Oct 2026
Surveys: ISS-159 and ISS-160 still reproduce (2 Oct), and form-runs ignores its campaign filtersurveysOpenone run per audience member; the invitation in the employee's Inbox or Home; the API filter respected.1. The campaign reports progress.invited: 6, and Links & runs lists 6 open runs: 3 per person (ISS-159). 2. Ananya sees nothing in the app: no Home card, her Inbox ("Approvals, acknowledgements, invitations & shares") shows 0, and no notification arrives (ISS-160). The emailed one-time link is the only way in. 3. GET /api/company/templates/form-runs?campaignId= also returns runs from other surveys (for example, Kabir's submitted run on "Demo – Q4 pulse"). The campaignId filter is ignored.No e2e test
ISS-396
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mysurveysAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-395
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventssurveysAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-394
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventssurveysAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-393
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mysurveysAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-374
2 Oct 2026
Grievance cases are blocked by the same disciplinary-record permission (follow-up to ISS-317)casesgrievancesOpena grievance case opens. Grievances are not disciplinary records, and the admin should be able to open one.403 FIELD_ACCESS_FORBIDDEN "Visible disciplinary-record access is required to create a case". Every kind (grievance, disciplinary, investigation) uses one permission that no role in the demo company has, so the Cases register can't be used at all. The dialog shows nothing before submit to say the action will be refused.No e2e test
ISS-392
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-391
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-390
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-389
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-388
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-387
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-386
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-385
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-384
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-383
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-382
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/leave/team-calendarfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/team-calendar?from=2026-10-02&to=2026-10-08No e2e test
ISS-381
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/notifications/unread-countfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/notifications/unread-countNo e2e test
ISS-380
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/organization/announcementsfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/organization/announcementsNo e2e test
ISS-379
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/people/momentsfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/people/momentsNo e2e test
ISS-378
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/attendance/myfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/attendance/my?month=2026-10No e2e test
ISS-377
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-376
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-375
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextfeedbackAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-374
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-373
2 Oct 2026
Editing a live review cycle opens the wizard, then silently refuses to saveperformanceOpena live cycle is read-only here (or the page redirects to the cycle), with a note on what can still change (Cycle actions).each Continue sends PATCH /company/perf/review-cycles/{id} and gets 409 CYCLE_TYPE_LOCKED "A cycle's type can only change while it is a draft". No message is shown; the wizard just stays on Basics.No e2e test
ISS-372
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-371
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/perf/my-reviews/mineperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/perf/my-reviews/mineNo e2e test
ISS-370
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-369
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-368
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-367
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-366
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-365
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-364
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-363
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-362
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-361
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-360
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-359
Auto
2 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsperformanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-358
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsattendanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-357
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextattendanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-356
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsattendanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-355
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myattendanceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-354
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/organization/announcementsacknowledgementsAuto-loggedavailable = opening + accrued + carried − taken (± overrides), and a request's days can't exceed the dates it covers.GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/organization/announcements ## ISS-320 · Leave balances don't add up: "left" exceeds what was granted minus what was takenNo e2e test
ISS-353
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/leave/team-calendaracknowledgementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/team-calendar?from=2026-10-02&to=2026-10-08No e2e test
ISS-352
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/inboxacknowledgementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/inboxNo e2e test
ISS-351
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myacknowledgementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-350
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextacknowledgementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-349
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsacknowledgementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-348
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mymass-updatesAuto-loggedHR sees the same receipts (and anything outstanding) on the employee record — it is the audit trail the receipts exist for.GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/my ## ISS-319 · Employee record's Acknowledgements tab is empty although the employee holds five receiptsNo e2e test
ISS-347
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsmass-updatesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-346
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mymass-updatesAuto-loggedthe picker lists only people who can be placed (or says why someone can't), and a batch saves the valid people while naming the one refused.GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/my ## ISS-318 · Manage people offers an employee the server then refuses ("unavailable in this Company")No e2e test
ISS-345
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsmass-updatesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-344
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextmass-updatesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-343
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mymass-updatesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-342
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsmass-updatesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-341
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myself-serviceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-340
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsself-serviceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-339
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myself-serviceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-338
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsself-serviceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-337
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextself-serviceAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-336
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsexitAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=2&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-335
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myexitAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-334
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsexitAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-333
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myexitAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-332
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsknowledge-transferAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-331
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextknowledge-transferAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-330
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mydisciplinaryAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-329
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mytransfersAuto-loggedthe New case button is offered only to people who may create cases, and the company super admin / HR Head (the "People leadership" the dialog names) can open one — or the dialog says which access is missing and where it is granted.GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/my ## ISS-317 · Nobody can open a disciplinary case — 403 "Visible disciplinary-record access is required"No e2e test
ISS-328
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventstransfersAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-327
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsconfirmationAuto-loggedthe nomination closes cleanly, and the peer gets a task (inbox / My journey) to give their input before the due date.GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fc ## ISS-315 · Confirmation: a nominated peer is never asked, and Nominate reports an error that didn't happenNo e2e test
ISS-326
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextconfirmationAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-325
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myconfirmationAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-324
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsconfirmationAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-323
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsconfirmationAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-322
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myconfirmationAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-321
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsconfirmationAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-320
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextconfirmationAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-319
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mynew-joineesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-318
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsnew-joineesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-317
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextonboardingAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-316
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myonboardingAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-315
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsonboardingAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-313
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsonboardingAuto-loggedthe joiner copies the current template (5 tasks) like a manual start does — Rhea Menon (Demo), started from Start onboarding on 2 Oct, got all five tasks and completed normally.GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fc ## ISS-256 · Joiners started by the joiner workflow get an empty onboarding checklistNo e2e test
ISS-312
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextonboardingAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-311
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsonboardingAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-310
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myemployee-masterAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-309
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsemployee-masterAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-308
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextemployee-masterAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-307
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-306
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-305
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/leave/team-calendaragreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/team-calendar?from=2026-10-02&to=2026-10-08No e2e test
ISS-304
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/people/momentsagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/people/momentsNo e2e test
ISS-303
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/leave/meagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/me?role=employee-82628593&tier=companyNo e2e test
ISS-302
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/leave/holidaysagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidaysNo e2e test
ISS-301
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/organization/announcementsagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/organization/announcementsNo e2e test
ISS-300
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/inboxagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/inboxNo e2e test
ISS-299
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/attendance/myagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/attendance/my?month=2026-10No e2e test
ISS-298
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/notifications/unread-countagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/notifications/unread-countNo e2e test
ISS-297
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-296
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-295
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/leave/myagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/myNo e2e test
ISS-294
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsagreementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-293
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/leave/holidaysannouncementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidaysNo e2e test
ISS-292
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/attendance/myannouncementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/attendance/my?month=2026-10No e2e test
ISS-291
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/organization/announcementsannouncementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/organization/announcementsNo e2e test
ISS-290
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myannouncementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-289
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myannouncementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-288
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myannouncementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-287
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsannouncementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-286
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myannouncementsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-285
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/leave/mepoliciesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/me?role=employee-82628593&tier=companyNo e2e test
ISS-284
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventspoliciesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-283
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextpoliciesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-282
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventspoliciesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-281
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mypoliciesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-280
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventspoliciesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-279
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mypoliciesAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-278
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mycalendarAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-277
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventscalendarAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-276
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mycalendarAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-275
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mycalendarAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-274
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventscalendarAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-273
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mycalendarAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-272
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextcalendarAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-271
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsorg-chartAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-270
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/myorg-chartAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-269
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextorg-chartAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-268
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsorg-chartAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-267
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mygroupsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-266
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsgroupsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-265
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mygroupsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-264
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsgroupsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-263
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mygroupsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-262
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventsgroupsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-261
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mypositionsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-260
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventspositionsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-259
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/company-contextpositionsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-contextNo e2e test
ISS-258
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventspositionsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-257
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/me/policies/mypositionsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/myNo e2e test
ISS-256
Auto
1 Oct 2026
[auto] Server error 500 on GET /api/company/audit-eventspositionsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/audit-events?limit=25&page=1&companyId=82628593-49b6-4dad-ad2a-6b9472ab44fcNo e2e test
ISS-255
Low
1 Oct 2026
A completed transfer card shows a raw department idLifecycleTransfersOpen"FROM Administration → TO Information Technology".The card reads "FROM c5776412-9d46-4f2e-944e-4358424449b0 | TO Department" — an id instead of the department name, and "Department" instead of "Information Technology". See also ISS-253.No e2e test
ISS-254
Medium
1 Oct 2026
Transfers: "Agree (JD shared)" never enables, so the dates can only be agreed by overrideLifecycleTransfers › Internal transferOpenPicking a last day before the effective date enables "Agree (JD shared)" and records the dates."Agree (JD shared)" stays disabled for every date tried — last day equal to the effective date (1 Dec / 2 Oct), a day before it (1 Oct for a 2 Oct move), and a past date — and the form has nothing else to fill. The gate can only be passed by the HR Head's override.No e2e test
ISS-253
Low
1 Oct 2026
A completed transfer shows the destination as its "From"LifecycleTransfersOpen"From" keeps the department they left.The card reads "FROM Administration TO Administration" — "From" shows the employee's current department, so the history loses where they came from.No e2e test
ISS-252
High
1 Oct 2026
Internal transfer: payroll, both timers, "Transfer effected", goals and the 90-day review run as empty stepsLifecycleTransfers › Workflow engine › Internal transferOpenEach gate waits for its event or the HR Head's override, and the 90-day review waits 90 days after the effective date.From 05:24:02 UTC "Payroll updated", "Until the effective date", "Transfer effected", "Goals set", "Until ninety days after the effective date" and "Role review recorded" all completed in six seconds, each logged "generic":true with an empty result — no gate waited and no timer waited. The case shows Completed. Same behaviour as ISS-248 on the Joiner.No e2e test
ISS-251
Low
1 Oct 2026
Transfer letter names the transfer type instead of the destination, and keeps the old effective dateLifecycleTransfers › Workflow › Internal transferOpen"Your transfer to Administration from ".The drafted letter's subject is "Your transfer to department move from 2026-12-01" (run c354331d…): "to" is filled from the transfer type, not the destination department, and the date is the original effective date, not the edited one.No e2e test
ISS-250
Medium
1 Oct 2026
Employees can't request a change to their record, so both profile-change workflows are unreachableSelf-serviceEmployee record › Workflows › Profile change approval, Profile ChangeOpen — confirmed (via SHR-063)
e2e run 15 Oct 2026
Employees can request changes to their record (with evidence for sensitive fields), which starts Profile change approval.The employee's Settings → Profile only edits account details (name, phone, pronouns, timezone, bio) and saves at once; My journey says "Your record … is kept in the lifecycle module, which is not open to the workforce yet". The admin's Edit profile saves the HR record directly. Nothing raises profile_change.requested, so "Profile change approval" (sensitive fields → two HR reviewers; others → one) has never run, and "Profile Change" only ran once from the API (16 Sep).1 test: 1 fail
tests
  • ✗ SHR-063 · an employee can see and complete their own onboarding details
ISS-249
Low
1 Oct 2026
A refused probation review still starts (and cancels) a workflow runLifecycleConfirmation › Workflow › Probation confirmationOpenCheck eligibility before starting the workflow, and only list eligible employees.The review is refused ("Onboarding incomplete — Confirmation tracking starts only after the joiner's onboarding checklist completes", POST /api/company/people/lifecycle/confirmations → 400 INVALID_REFERENCE), but each attempt creates a "Probation confirmation" run that is cancelled in the same second (e.g. 814af187…, 5c69a851…, 9c594111…), cluttering the workflow's instances. The picker also offers people the check will refuse.No e2e test
ISS-248
High
1 Oct 2026
Joiner: logistics and security emails, the final validation and the employee-link gate are skipped as empty stepsOnboardingWorkflow engine › JoinerOpenDraft steps create a draft for approval and send it; gates wait for their event (or the HR Head's override) before the case moves on.At 02:37 UTC "Logistics email drafted/sent", "Building security told/sent", "HR Manager's final validation: READY" and "Employee record created" all completed within four seconds, each logged as {"type":"auto", …, "generic":true} with an empty result: no draft was created for approval, no email went out, and neither gate waited for its event or override. On a probe joiner (Fatima Shaikh (Demo), run 27d04459…) two hours earlier, the same steps were real draft approvals and gates. The Day-one checklist also changed from the HR Manager / department head to the requester (checklist:requester).No e2e test
ISS-247
Medium
1 Oct 2026
Joiner readiness and Day-one checklists go to the wrong peopleOnboardingWorkflow › IT and Admin readiness, Day oneOpen — confirmed (1 of 2 checks fail) (via SHR-033)
e2e run 15 Oct 2026
IT items go to IT, Admin items to Admin, and the checklist sign-off to a named owner.All six IT and Admin readiness items (accounts, laptop, IT confirmation, seating, temporary ID, SWAG kit) are assigned to the HR Head who requested the hire (checklist:requester), not to IT or Admin. Each checklist's sign-off step is "unassigned" and falls back to the HR admin (fallback:hr_admin ← unassigned, run 769d2855…). The panel's "IT ready" / "ADMIN ready" buttons don't tick any item.2 tests: 1 fail · 1 pass
tests
  • ✓ SHR-033 · started with the stakeholder checklist, each stakeholder gets their own items
  • ✗ SHR-033 · no recruitment hire sits in onboarding with an empty 0/0 checklist
ISS-246
Medium
1 Oct 2026
Joiner: a document discrepancy can't be recorded, so "Offer void" never happens; declining the override strands the caseOnboardingWorkflow › JoinerOpenHR can record "verified" or "discrepancy" with a note; a discrepancy voids the offer as designed.The panel has no way to record the verification result ("Mark verified" is disabled without uploaded documents, and there is no "discrepancy" choice). The only path is the HR Head's override, which can approve (verified) but not record a discrepancy, so "Discrepancy?" can never choose "Offer void". Declining the override leaves the gate waiting with no task for anyone (run 27d04459…).No e2e test
ISS-245
Medium
1 Oct 2026
Joiner email approvals show neither the joiner nor the draftOnboardingWorkflow › JoinerOpenThe approval names the joiner and shows the drafted email (recipients, subject, body) so the approver knows what they are sending.The item is titled "Onboarding instance · Buddy intro drafted"; requester and details say only "Kavya Raghunathan". There is no joiner name, recipient or email text — just Approve / Decline. The candidate pack, welcome announcement, logistics and security drafts work the same way.No e2e test
ISS-244
High
1 Oct 2026
One person can approve an offer alone: later HR and finance steps auto-approve when the same person is in their groupWorkflow engineRecruitment › Offer Approval v3OpenA three-signature approval needs three different people; a group step should go to its other members when one member has already signed an earlier step."HR review" and "Finance signs the compensation" are recorded as approved by Ops Maven at once (relationship:hr_partner·already-approved, relationship:finance_approver·already-approved, run a532a2ee…), so the offer is fully approved and "ready to release" after one click. The other HR and finance approvers are never asked. The same skip happens elsewhere (e.g. Asset request: Kavya's finance approval also approved the asset-approver step).No e2e test
ISS-243
High
1 Oct 2026
Offer approval can't find the requisition's hiring manager, so every offer falls back to the HR adminRecruitmentWorkflow › Offer Approval v3Open — confirmed (1 of 2 checks fail) (via SHR-059)
e2e run 15 Oct 2026
The step goes to the requisition's hiring manager (Harsh).The "Hiring manager" step is annotated fallback:hr_admin ← relationship:requisition_hiring_manager (no hiring manager) and goes to Ops Maven (run eccff668…). The run's request carries only the offer code, offer id and application id, not the requisition, so the hiring manager can't be resolved. Harsh never sees the offer.2 tests: 1 fail · 1 pass
tests
  • ✓ SHR-059 · the approval goes to the HR Head (the role is in Delivery)
  • ✗ SHR-059 · the offer approval goes to the HR Head, whatever the department
ISS-242
Medium
1 Oct 2026
Three recruitment approval workflows can never run: Job Post Publish, Stage Advance and Internal PlacementRecruitmentWorkflowsOpenPublishing a post, advancing a gated stage and applying internally start these workflows (or the workflows are retired).Each is Active, "Started by API or a parent workflow", and "never ran". No parent workflow calls them, and there is no API to start one (POST /api/company/workflows/instances → 404). In the product, Publish role puts a post live at once, moving a candidate to the next stage happens at once, and employees have no screen to apply for an internal role — so HR's advert review, the hiring manager's stage sign-off and the releasing/receiving manager approvals never happen.No e2e test
ISS-241
Low
1 Oct 2026
A trip-linked claim drops the title the employee typedExpensesNew claimOpenThe claim keeps the title the employee gave it, or the field is hidden when a trip is picked.My claims lists it as "Trip expenses", and the approver's inbox item is titled with the trip name ("Expenses — Demo – Customer visit Chennai"). The typed title appears nowhere.No e2e test
ISS-240
Medium
1 Oct 2026
Expense claims against an approved trip still go to the manager: the workflow gets no claim detailsExpensesWorkflow › Expense claim approvalOpenThe claim's trip, total and title reach the workflow, so a trip-linked claim goes straight to finance verification.The run's request context is empty ({}), so "Is this claim against an approved trip?" (request.travelRequestId is not empty) takes the standalone branch and the claim goes to the manager for endorsement (run ab32712d…, step manager_approval). The run subject is only "Expense claim", with no title or amount. Same cause as ISS-238.No e2e test
ISS-239
High
1 Oct 2026
A decline by one approver in an "any one decides" group doesn't end the request; it stays open with the othersWorkflow enginegroup approvalsOpenIn an "any one decides" group, the first decision (approve or decline) decides the step and closes the other copies.Kavya's task is rejected, but the other 4 copies stay pending and the run stays running at Finance sign-off, so the advance is still "Awaiting approval" for the employee and in 4 inboxes. The decline notice never goes out. An approval in the same kind of step closes the other copies at once (HR review in Annual Leave Approval, HR confirmation in Overtime).No e2e test
ISS-238
Medium
1 Oct 2026
Travel requests never reach the skip-level sign-off: the workflow gets no trip details, so every trip is treated as one legTravelWorkflow › Travel request approval v2OpenThe travel request passes its legs, dates and cost to the workflow, so multi-leg trips get the skip-level sign-off.The run's request context is empty ({}), so "How big is the trip?" (request.legs > 1) always takes the default branch: only the manager approves (run 97d9cdb8…, step manager_approval), and "Skip-level sign-off" never runs for multi-leg trips. The approval notice also has no dates to fill in ("Your trip from {{ record.fromDate }} …").No e2e test
ISS-237
Medium
1 Oct 2026
No screen can request comp-off; "Use comp-off" only opens the leave form, and there are two comp-off leave typesLeaveOvertime & comp-off › self-service), Workflow › Comp-Off Request v4OpenA "Request comp-off" form (day worked, reason, days), and a single comp-off leave type."Use comp-off" opens Leave → Apply, where "Comp-off" is one of the leave types (spending comp-off). Nothing on any screen sends a comp-off request (asking to be credited for, e.g., a holiday worked). Only POST /api/me/leave {kind: "comp_off", units} starts the Comp-Off Request workflow (run fd57ac2f…: Manager approval → Credit the comp-off days +1 → "Comp-off granted"). The leave list also has two types, "Comp-off" (where overtime lands) and "Compensatory Off" (always 0), with no explanation of the difference.No e2e test
ISS-236
Medium
1 Oct 2026
Overtime claim shows the worked hours 5½ hours late ("3:00 PM–5:00 AM" for a 09:30–23:30 day)AttendanceOvertime › self-serviceOpen"You worked 9:30 AM–11:30 PM", in the company's time zone."You worked 3:00 PM–5:00 AM · 5h claimable". The punch times entered in IST are shown shifted by +5:30 (as if converted from UTC twice), and the day looks like a night shift. The claimable hours (5h) are right.No e2e test
ISS-235
Medium
1 Oct 2026
"Could not send the correction — request timed out" although the correction was createdAttendanceself-service correctionsOpenTreat a slow response as unknown, check whether the correction exists before offering to resend, and say so ("It may already have been sent. Check My corrections").After 20 s the form shows "Could not send the correction — Request timed out after 20s. The server may be slow or unreachable" and stays open. The correction was in fact saved and its workflow started (run 9ded7d25…, waiting on the manager). Pressing Send again would file a duplicate.No e2e test
ISS-234
Low
1 Oct 2026
The designer says Attendance Regularization starts "manually, no module", but the attendance correction form starts itWorkflow designerwf-2277beOpenShow the real starting point ("Attendance · Correction requested"), so admins can tell which workflows are in use.The designer copy's trigger is {event: "manual", module: "No module"}, and Settings → Workflows lists no trigger event for it. Sending a correction from Leave & attendance → Attendance → Request a correction (POST /api/me/attendance/regularizations) does start it (e.g. WF-2026-000131). Overtime Approval and Shift Swap likewise show no trigger.No e2e test
ISS-233
High
1 Oct 2026
Work From Home and Short Permission requests go through Annual Leave Approval; their own workflows never run, and neither has a screenLeaveWorkflow › Work From Home Request v4, Short Permission › Hours) v?, Annual Leave Approval v5OpenEach request kind raises its own event (wfh.requested, permission.requested, …) and runs its own workflow; WFH and short permission don't touch leave balances; the self-service page has a form for each.Both requests start Annual Leave Approval (WF-2026-000128, and the next run: Balance check → How long? → Manager approval), are charged against a leave type (the API requires leaveTypeId, here PTO), and would post a leave debit on approval, like a normal day off. "Work From Home Request" and "Short Permission (Hours)" have no trigger event in Settings → Workflows and show "never ran". The same routing sends cancellations to Annual Leave Approval (ISS-232).No e2e test
ISS-232
High
1 Oct 2026
Cancelling approved leave takes the days away again instead of giving them back; the Leave Cancellation workflow never runsLeaveWorkflow › Leave Cancellation v8, Annual Leave Approval v5OpenA Cancel action on approved leave that raises leave.cancellation_requested, routed to Leave Cancellation, which credits the days back (after the manager's sign-off for more than 3 days).- The request starts the Annual Leave Approval workflow (WF-2026-000126: Balance check → Manager approval), not Leave Cancellation (trigger leave.cancellation_requested), so the cancellation workflow's steps (credit the days back, "Leave cancelled") never run. - On approval, "Post to leave ledger" posts ledgerDelta: -2 again: PTO available went from 11 to 9, taken from 19 to 21. The employee loses the days twice. - My leave has no way to ask for a cancellation of approved leave at all, so employees can't start it from the app.No e2e test
ISS-231
Medium
1 Oct 2026
The leave form promises loss of pay for Bereavement Leave, then the server refuses for insufficient balanceLeaveself-serviceOpenThe form only offers loss of pay for leave types whose policy allows it; otherwise it says up front that there is no balance and disables Send.Toast "Insufficient balance — Insufficient Bereavement Leave balance: 0 available, 1 requested (INSUFFICIENT_BALANCE · 409)". The form had just offered loss of pay. For Paid Time Off at 0 the same form was accepted as loss of pay (and then rejected by the workflow, ISS-229).No e2e test
ISS-230
Medium
1 Oct 2026
Two branches of Annual Leave Approval can never run: the leave form blocks them firstLeaveWorkflow › Annual Leave Approval v5OpenThe policy and the workflow agree. Either allow leave on notice (the workflow already handles extending the notice), or remove the branch; and say on the designer which leave types can reach the extended-leave review.(a) 422 NOTICE_PERIOD — Leave cannot be taken during the notice period, so the workflow's "On notice? → Extend the notice period → Tell the requester and HR" branch is unreachable. (b) 422 MAX_CONSECUTIVE — Paid Time Off (PTO) — company default allows at most 10 consecutive days, so the "more than 12 days → department head + leave committee" branch can't be reached with PTO; only leave types without a limit (e.g. Service Leave) get there.No e2e test
ISS-229
Medium
30 Sept 2026
A leave request the policy accepts as loss of pay is rejected by the approval workflow for "insufficient balance"LeaveWorkflow › Annual Leave Approval v5OpenOne rule. Either the workflow respects the policy's loss-of-pay disposition (route it for approval as LOP), or the form refuses the request up front with the same message.The submit response says lop: { disposition: "auto_lop", days: 1 } (the policy lets it through as loss of pay). The workflow's first step "Balance check" (employee.balance <= 0) then sends "Leave request cannot proceed — your available balance is exhausted" and rejects it at once (run WF-2026-000116). The employee is told two different things, and the policy's loss-of-pay setting has no effect.No e2e test
ISS-228
Medium
30 Sept 2026
The leaver's letters are only emailed: My documents stays empty and My journey shows nothing openSelf serviceMy documents, My journey › Workflow › ResignationOpenLetters released by the workflow are filed under My documents, and her open tasks appear under "Open on you".My documents says "Nothing on file yet". The "We have received your resignation" and "Your relieving letter" letters were emailed but never filed on her record. My journey → "Open on you" says "Nothing waiting on you", although the Knowledge transfer run assigned her three tasks (plan drafted, tickets reassigned, signed KT document; see ISS-223). Her notifications do show the workflow's notices, without her name (ISS-221).No e2e test
ISS-227
High
30 Sept 2026
The Assets clearance lane still can't be cleared, even with nothing outstanding (ISS-090 again)Lifecycle offboardingOpenAn Assets lane with nothing outstanding can be marked cleared."Couldn't update the Assets lane — Unexpected server error". Then "The stage gate refused — Every clearance lane must be cleared or waived first". The other five lanes clear normally. The Resignation workflow's "All lanes cleared" step can't be reached without waiving the lane through the API (the card has no Waive action, ISS-095).No e2e test
ISS-227
Auto
30 Sept 2026
[auto] Server error 500 on PATCH /api/company/people/lifecycle/exits/92509449-fa95-4806-8030-51da8fa51545/clearance/c3d18590-5648-492b-9a58-55f93b58fb9cworkflow-resignationAuto-loggedPATCH https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/people/lifecycle/exits/92509449-fa95-4806-8030-51da8fa51545/clearance/c3d18590-5648-492b-9a58-55f93b58fb9cNo e2e test
ISS-226
Info
30 Sept 2026
Update to ISS-218: on the 30 Sep afternoon run, the Resignation workflow called the company's own "Clearance and settlement"WorkflowResignation v2 › om_clearance_ffsOpenFor Ananya Iyer (Demo) (exit 92509449…), the child run a34b869b… used the company version b91801fc… and genuinely waited at "Until two business days before the last day" (last day 14 Oct). The rehearsal run at 05:52 that day used the platform copy 376ff7dd… (ISS-218). Either ISS-218 was fixed during the day, or which version gets called isn't consistent. Worth checking which one it is.No e2e test
ISS-225
High
30 Sept 2026
Overriding a waiting workflow step from the Inbox always fails: it needs a reason but the panel has no comment boxInboxWorkflow gatesOpenAn override item says what it overrides and why it's allowed ("the conversation could not be held"), with a required reason field.Two toasts: "Something went wrong — Overriding a gate needs a reason — add a comment saying why. (400)" and "Couldn't record the decision". The panel only has Approve / Decline, with no field for the reason. The item's title is the step code ("Gate stay conversation"), and it doesn't say it's an override.No e2e test
ISS-224
Low
30 Sept 2026
The designer summarises the Resignation steps wronglyWorkflow designerwf-f3e043OpenShow the event a waiting step listens for, the real recipients, and the steps of the version that's live.- "Stay conversation recorded", "Retention decision" and "Counteroffer answered" read "Until an event (unset)". They do wait for exit.stay_conversation_recorded, exit.retention_decided and exit.counteroffer_answered, but the designer reads the empty config.event rather than config.gate.event. - "Stay conversation due" and the other notify steps read "Requester · In-app, Email", but they go to the manager and the HR Manager (recipients). The legacy recipient: requester field is what's shown. - The designer copy (flow doc, "draft") lacks two steps the live v2 has: "Exit accepted: into clearance" and "Settlement not completed".No e2e test
ISS-223
High
30 Sept 2026
Workflow checklist items can't be seen or ticked anywhere in the appWorkflow checklistsInboxOpen — confirmed (1 of 2 checks fail) (via SHR-033)
e2e run 15 Oct 2026
Checklist items listed in the assignee's Inbox (or a Tasks view) with a tick action, and on the exit card.None of the items appear in the assignee's Inbox (the /api/company/inbox payload doesn't include them), on Home, on /me, on the exit card, or under Settings → Workflows → Operations. The only way to tick them is POST /api/company/tasks/{id}/act. The KT plan shows its own copy of the KT items, but ticking those doesn't reach the workflow (ISS-217). So "Access and asset switch" can't be finished by anyone through the UI, and the Resignation run stalls there.2 tests: 1 fail · 1 pass
tests
  • ✓ SHR-033 · started with the stakeholder checklist, each stakeholder gets their own items
  • ✗ SHR-033 · no recruitment hire sits in onboarding with an empty 0/0 checklist
ISS-222
Medium
30 Sept 2026
The Inbox can't request changes, so every workflow's "Changes requested" branch is unreachable from the UIInboxWorkflowOpenA "Request changes" action (with a comment) wherever the step has that branch, and the step's display name as the title.The panel offers only Approve and Decline. The API accepts changes_requested (POST /tasks/{id}/act), and the designer gives every approval a "Changes requested" branch, but no screen lets an approver choose it. The item is also titled with the step code ("Approval manager") rather than the step name ("Reporting manager accepts"), and Requester/Details show "—" (ISS-093).No e2e test
ISS-221
Medium
30 Sept 2026
Resignation notifications leave out the employee's nameWorkflowResignation v2 › NotificationsOpen — confirmed (4 of 5 checks fail) (via SHR-061)
e2e run 15 Oct 2026
"Probe Leaver (Demo) has resigned (last working day 14 Oct 2026)…", with the date in the company's format rather than ISO."Stay conversation within two working days — has resigned (last working day 2026-10-14). Hold the stay conversation…". "After the exit: PF, mailbox, interview — is relieved. HR: …". Every notify step starts with {{ request.employeeName }}, which is empty in the run context (ISS-210), so the manager isn't told who resigned. The acknowledgement and relieving letters do carry the name.5 tests: 4 fail · 1 pass
tests
  • ✓ SHR-061 · the exit module is open to employees
  • ✗ SHR-061 · the notice period comes from the employee’s location: 60 days in India
  • ✗ SHR-061 · notice periods are set per jurisdiction (India 60 days, other countries 14)
  • ✗ SHR-061 · approvals and notifications reach every exit stakeholder as soon as someone resigns
  • ✗ SHR-061 · the notification fits the requested last working day
ISS-220
High
30 Sept 2026
A policy acknowledgement due in 9 days locks managers out of the whole appPoliciessign-inOpenAllow "Remind me later" until the due date, or at least let people reach their Inbox.A full-screen "Attendance & Punctuality Policy — Leave & Attendance · v1 · due 9 Oct 2026" covers every page. Its only button is Acknowledge (enabled after scrolling and ticking "I have read and understood"). Escape doesn't close it, and there's no "Later". So a manager can't reach the Inbox to act on pending approvals (e.g. a resignation waiting at "Reporting manager accepts") until they acknowledge a policy that isn't due for 9 days. Kavya Raghunathan and Aarav Krishnamurthy aren't blocked.No e2e test
ISS-219
Medium
30 Sept 2026
The Resignation workflow announces "Exit complete" while the exit is still in clearanceWorkflowResignation v2 › Lifecycle offboardingOpen — confirmed (via SHR-109)
e2e run 15 Oct 2026
The workflow waits for the exit's clearance and settlement, and the exit card reflects the settlement recorded through the workflow.The run ends with "Exit complete: … accepted, handed over, cleared, settled, relieved". The exit card still says in_clearance, with every clearance lane (HR interview, assets, IT, manager, KT, Finance) pending and settlement pending. Nothing on the card was cleared: the workflow's "All lanes cleared" step passed without waiting (ISS-218), and the settlement panel's "paid" isn't reflected on the card.1 test: 1 fail
tests
  • ✗ SHR-109 · a resignation or exit is not posted in Announcements
ISS-218
High
30 Sept 2026
The Resignation workflow calls the platform copy of "Clearance and settlement": its gates pass instantly and its approvals go to nobodyWorkflowResignation v2 › om_clearance_ffsOpenCall the company's version of the sub-process, and have its gates wait for their events (exit.cleared, ffs.inputs_ready, …).The child run (7b895301…) uses the platform version (376ff7dd…, placeholders), not the company's own om_clearance_ffs (v1 b91801fc…, real HR Manager / HR Head approvers). In that run: - "Until two business days before the last day", "All lanes cleared", "Inputs ready", "Tentative amount sent" and "Vendor statement received" all finish within 12 s as generic auto steps. Nothing waits for the exit to be cleared or for any settlement input. - "Settlement review, level 1" is assigned via relationship:placeholder_hr_manager (unresolved) to nobody (assignedUserId: null), so the run and the parent Resignation run are stuck.No e2e test
ISS-217
Medium
30 Sept 2026
Knowledge-transfer checklist and KT plan don't sync, and the fallback sign-off closes the checklist with required items openWorkflowKnowledge transfer, om_knowledge_transfer v4 › Lifecycle knowledge transferOpenTicking a KT plan task completes the matching checklist item (and vice versa). The sign-off should route to a named approver and not close a checklist whose required items are open.- The plan shows 4/4 and completes itself, but the workflow's three leaver items stay pending (the plan ticks never reach the checklist). HR can't act on them (404 Task not found), so only the leaver could. - After Harsh's tick, a sign-off approval goes to the HR Manager as fallback:escalation … ← unassigned ("no approver could be routed"). Approving it completes the checklist step and the child run, with the three required leaver items still open.No e2e test
ISS-216
Low
30 Sept 2026
Withdrawn exits leave their knowledge-transfer plans activeLifecycle knowledge transferoffboardingOpenWithdrawing an exit cancels its KT plan, or at least marks the plan as belonging to a withdrawn exit.Each exit created a "Leaving — no due date" plan marked "Counts toward exit clearance". All of them stay active after their exit is withdrawn, so the probe has 6 plans. "Active plans" counts them all (10).No e2e test
ISS-215
Low
30 Sept 2026
Every ticked checklist item re-opens the checklist's sign-off, so the approver gets one inbox item per tickWorkflowAccess and asset switch, om_access_switch v2OpenOne sign-off task, created once every item is done, assigned to the sign-off relationship directly rather than through the "unassigned" escalation fallback.Each tick starts a new "checklist_access" approval for the Department Head, routed as fallback:escalation (relationship:role:department-head) ← unassigned. Kabir Anand gets 5 identical approvals. Approving one completes the step and the other 4 turn "skipped" (acting on them returns 409 already skipped by someone else).No e2e test
ISS-214
Medium
30 Sept 2026
"Changes requested" on a resignation approval silently ends the caseWorkflowResignation v2 › Lifecycle offboardingOpenSend the request back to HR (or the employee) to change and resubmit, or at least notify HR, as the Rejected branch does.The "Changes requested" branch has no steps. The run ends as rejected, the exit is withdrawn, and nobody is told: no "Resignation not accepted" notice goes to HR or the employee, unlike a rejection. HR has to start a new exit to continue.No e2e test
ISS-213
Medium
30 Sept 2026
After HR overrides the "Stay conversation recorded" step, the exit card still won't take a retention decisionLifecycle offboardingWorkflow › ResignationOpenAn overridden stay conversation should count as done on the exit, so the retention decision can be recorded.409 DECISION_ORDER — record the stay conversation first. The workflow accepted the override, but the exit card still requires the stay conversation. HR must either record one after saying it couldn't be held, or override the retention step too.No e2e test
ISS-212
Medium
30 Sept 2026
Cancelling one Resignation run withdraws the exit, while the other run keeps goingWorkflow runsLifecycle offboardingOpenCancelling one run of a case shouldn't withdraw the case without saying so. Withdrawing an exit should cancel all of its runs and remove their tasks.The exit case becomes withdrawn, but the other run (fd5b825b…) stays running at "Acknowledgement drafted", with its task still in the HR Manager's inbox for a case that no longer exists.No e2e test
ISS-211
High
30 Sept 2026
Correction to ISS-210: every resignation still starts two Resignation runs (v2), and only the duplicate lacks the employee's nameWorkflowResignation v2 88f78c82 › Lifecycle offboardingOpenOne run per exit.Two runs of the same version start 3 s apart (WF-2026-000076 fd5b825b… and WF-2026-000077 933c59ec…). The first drafts "We have received your resignation, Probe Leaver (Demo)" and waits for the HR Manager to approve it. The second has no employeeName, so it raises the "Employee · Name" gap task (ISS-210). Both assign the HR Manager, and every later step would run twice (two inbox items per approver, two sets of notifications). Same as ISS-131, still happening on v2.No e2e test
ISS-210
High
29 Sept 2026
The Resignation workflow's first step always stalls: the trigger doesn't pass the employee's name, so the acknowledgement letter becomes a gap task for the HR ManagerWorkflowResignation, wf-f3e043 › Lifecycle offboardingOpenPut employeeName (and the employee's department/location) into the trigger context so the letter drafts without a gap. If a gap does happen, route it to a group that has more than one person in it."Acknowledgement drafted" (template exit_resignation_ack) merges employee_name from {{ request.employeeName }}, but the resignation.submitted context carries only employeeId, exitCaseId and lastWorkingDay. The engine logs merge_gap missing: ["employee_name"] and creates a form task "Employee · Name" for the HR Manager role. That role's only member is Harshit Bhalla, so the run has waited there since 28 Sep and nothing downstream (stay conversation, approvals, offboarding) starts. The run context's employee block is also empty (department, location null). The same {{ request.employeeName }} is used by every notify step and the relieving letter.No e2e test
ISS-209
Low
29 Sept 2026
Security says two-factor adoption is "0 of 26 members" while Users lists 25 accountsSettingsSecurityOpenThe same population on both pages, and say whether invited or suspended accounts are counted. Related: ISS-170 (member counts).Adoption so far: "0 of 26 members". Settings → Users: "25 accounts · 4 invitations pending".No e2e test
ISS-208
Low
29 Sept 2026
Roles people still hold show an active Delete buttonSettingsRolesOpenDisable Delete (with a tooltip) while a role has members, so nobody learns the rule by trying.Every company role card, including Employee (16 members) and Reporting Manager (3), has an enabled trash button ("Delete Employee", disabled=false). The footer says roles "can be … deleted once nobody holds them". Not clicked on held roles; the empty "Demo – Auditor" role deleted fine (DELETE /api/company/roles/{id} → 200, archived: true).No e2e test
ISS-207
Low
29 Sept 2026
"Delegate added" says new approvals will go to the delegate even when the delegation is scheduled for laterSettingsDelegationOpen"From 21 Dec, new approvals will go to …" for a scheduled delegation.Toast: "New approvals assigned to you will go to Harsh Vardhan Mistry." The row correctly says "Scheduled", Dec 21 – Dec 24. Removal has no confirmation (the demo delegation was removed straight away).No e2e test
ISS-206
Low
29 Sept 2026
Notification preferences are lost without warning when you leave the page before "Save preferences"SettingsNotificationsOpenSave each switch when it's flipped, or show a sticky "Unsaved changes" bar and warn when leaving.The switch moves at once and nothing says it's unsaved. The Save preferences button is at the very bottom of a ~93-row list, and leaving drops the change silently. Saving works (PUT /api/company/notification-preferences → 200) and survives a reload.No e2e test
ISS-205
Low
29 Sept 2026
Profile shows the role as "Hr Head 82628593", its internal key, instead of the role's display nameSettingsProfileOpenThe role's display name, as in the sidebar. Related: the audit-log issue where a deleted role shows as "demo leave reviewer 82628593".Under the name and in the read-only Account card, ROLE reads "Hr Head 82628593" for Kavya Raghunathan and "Employee 82628593" for Zoya Kirmani: the role key with the company id appended, title-cased. The sidebar correctly shows "HR Head" / "Employee".No e2e test
ISS-204
Auto
29 Sept 2026
[auto] Server error 500 on POST /api/company/delegationssettings-personalAuto-loggedPOST https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/delegationsNo e2e test
ISS-202
Medium
29 Sept 2026
HR has no screen to read or answer feedbackFeedbackPerformanceOpenAn HR inbox for feedback with status updates, so the "Track a code" status on the employee side can move.GET /api/company/perf/feedback-cases exists and answers 200 for HR, but no page uses it: /company/{id}/feedback is Not Found, Performance has no feedback tab, and Cases covers only disciplinary matters and grievances.No e2e test
ISS-201
High
29 Sept 2026
Sending feedback fails with a 500 even for a user who has Feedback accessFeedbackOpen201 with a case id (and a reference code when anonymous).POST /api/me/perf/feedback-cases {"category":"feedback","subject":"…","body":"…","anonymous":false|true} → 500 INTERNAL_ERROR every time (requestIds 48985043-1b63-4090-b229-611e13844aa2, bc91f8e8-4175-4c14-87b8-6cb2a50da5aa, b0d6fb11-a535-4c1d-aa27-02aff0617ad0, 77ffa988-154c-4498-94ac-8973d836ef35). Nothing is saved and no reference code is issued.No e2e test
ISS-200
High
29 Sept 2026
Employees and managers get the Feedback page but can't send anything (403), and the page gives no sign of it until they submitFeedback/me/feedbackOpenThe employee role can send feedback (the page says "It goes straight to the People team"), or the page is hidden or explains the missing access before someone writes a message.POST /api/me/perf/feedback-cases → 403 FORBIDDEN "Submitting feedback requires edit access". On load, GET /api/me/perf/feedback-cases also returns 403 ("Viewing feedback requires Feedback access"), but the page silently shows "Nothing sent yet" and an enabled form.No e2e test
ISS-203
Auto
29 Sept 2026
[auto] Uncaught page error: undefinedperformance-feedbackAuto-loggedNo e2e test
ISS-202
Auto
29 Sept 2026
[auto] Server error 500 on POST /api/me/perf/feedback-casesperformance-feedbackAuto-loggedPOST https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/perf/feedback-casesNo e2e test
ISS-201
Auto
29 Sept 2026
[auto] Server error 500 on POST /api/me/perf/feedback-casesperformance-feedbackAuto-loggedPOST https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/perf/feedback-casesNo e2e test
ISS-200
Auto
29 Sept 2026
[auto] Uncaught page error: undefinedperformance-feedbackAuto-loggedNo e2e test
ISS-199
Low
29 Sept 2026
The manager's "Overall" rating is not part of the score, which the form doesn't explainPerformanceOpenSay on the form that Overall is for context only, or make it optional, or include it in the score as configured.The score is the weighted goal average; the required Overall rating has no effect and nothing on the form says so.No e2e test
ISS-198
Low
29 Sept 2026
"Closing next" on My reviews still lists deadlines of a cycle that has been releasedPerformanceself serviceOpenOnce a cycle is released, only the acknowledgement due date (if not acknowledged) should remain."Closing next" still shows Goal setting 15 Oct, Self assessment 20 Oct, Reviewer rating 28 Oct, Release 30 Oct for the released Demo – Q4 review pilot.No e2e test
ISS-197
Low
29 Sept 2026
A cut-off can be extended for a stage the person has already finishedPerformanceOpenOnly offer people and stages that are still open, or warn that the stage is complete.201, recorded under Extensions. Zoya's "Closing next" list then shows Reviewer rating 28 Oct.No e2e test
ISS-196
Low
29 Sept 2026
"Close cycle" says 1 review is still open when both reviews are submitted and awaiting releasePerformanceOpenA count that matches the cockpit (2 awaiting release), and a message that says they are awaiting release rather than "still open". Cancelled; nothing was closed.PATCH …/review-cycles/{id} {"status":"closed"} → 409 CYCLE_HAS_UNFINISHED_REVIEWS, "1 person has a review still open", unfinished: 1. With 2 unreleased reviews, 1 is neither count.No e2e test
ISS-195
Medium
29 Sept 2026
Self-assessments and ratings are accepted before the review period starts and while the cycle is still in goal settingPerformanceOpenSelf-assessment and rating open only when their stage starts (after goal setting closes), or at least not before the period start date.All accepted (200). The cycle still shows "Goal setting". HR could release the same day, so a quarter's review was complete before the quarter began.No e2e test
ISS-194
Low
29 Sept 2026
The "is any of" operator in the review audience builder only accepts one valuePerformancerule builderOpenA multi-value picker (chips, or a list of people) for "is any of".The value is a single text box. Pressing Enter after a name replaces it; "Zoya Kirmani, Nithya Sundaram" (with or without spaces) matches 0 people. Picking two people needs two conditions plus "Match any".No e2e test
ISS-193
Medium
29 Sept 2026
A closed survey round can't be reopened, and Close has no confirmation, so one wrong click ends a live round for goodSurveysOpenA confirmation before closing, and a way to reopen a round closed by mistake (at least before its planned close date). Related: ISS-158.No e2e test
ISS-192
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedsurveys-respondAuto-loggedNo e2e test
ISS-191
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/v1/templates/variablessurveys-buildAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/v1/templates/variablesNo e2e test
ISS-190
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/v1/templates/variablessurveys-buildAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/v1/templates/variablesNo e2e test
ISS-189
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/v1/templates/variablessurveys-buildAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/v1/templates/variablesNo e2e test
ISS-188
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/v1/templates/variablessurveys-buildAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/v1/templates/variablesNo e2e test
ISS-187
Low
29 Sept 2026
Performance dates and counters: mixed formats, stale "Closing next", and filter counts that don't changePerformanceOpenShow only the stages relevant to the person, filtered counts, and one date format.- Harsh's "Closing next" lists "Self assessment Q2 in 3 days", "Reviewer rating 9 Oct" and "Release 16 Oct", but he is on the KRA track (no self-assessment) and already released. - Clicking the cockpit KPI cards (Self-assessments in, Reviewer ratings in) filters the list to 1 or 3 people, but the header still says "12 participants". - Dates appear as 2026-10-02, 2 Oct, 9/24/2026 (Extensions "recorded"), Saved 9/23/2026, 6:45:15 PM and a raw ISO timestamp in the inbox.No e2e test
ISS-186
Low
29 Sept 2026
Every review cycle is labelled "Annual"PerformanceOpenA cycle type choice (Annual / Half-yearly / Quarterly / Probation…) or no tag.The New review cycle wizard has no type field and always sends cycleType: "annual". So "Q2 2026 Quarterly Review", "Monthly review" and "5 Days review" all show the tag "Annual" in the cycle list.No e2e test
ISS-185
Low
29 Sept 2026
Review banners and help text contradict the actual statePerformanceOpenBanners that match the status (Closed, Released, Locked), and guide text that matches the rules.- Closed cycles (Monthly review) and the released Q2 cycle both say "…read-only — HR has locked this cycle. Nothing can be changed unless it is released." - On Kabir's review, released at 4.0, Harsh's reviewer page still says "Kabir Anand has not submitted their self-assessment yet. You can still rate…". - The guide says "Goals-track reviews open for rating once the person submits their self-assessment", but managers can rate before that. Kabir's goals-track review was rated and released with no self-assessment. - "Live … Goals, reviews or calibration under way" mentions calibration, which the product doesn't have.No e2e test
ISS-184
Medium
29 Sept 2026
HR's per-person page in a cycle shows only the goal sheet, and its "Employees" breadcrumb is Not FoundPerformanceOpenA read-only review view (both sides, score, band, acknowledgement) for HR, and a breadcrumb that goes back to the cycle.- The page shows "Ishita Bhattacharya — goals" with 4 goals and weights. It has no self-assessment, manager ratings or comments, score, band, acknowledgement or remarks. - So HR cannot read the reviews it releases, and there is no HR sign-off view. - The breadcrumb "Employees" links to /performance/cycles/{id}/employees, which shows "Not Found".No e2e test
ISS-183
Medium
29 Sept 2026
Reporting Manager role has company-wide Performance admin (all cycles, every rating and comment)PerformanceRBACOpenManagers see only their own reports' reviews, through their review queue. Cycle admin stays with HR. Related: ISS-086, ISS-150.- Harsh Vardhan Mistry (Reporting Manager) has performance.cycle.view and performance.cycle.manage. - He can open Performance with "New cycle", every cycle's cockpit (all 12 Q2 participants, including the CEO and CTO), Reports (rating distribution by band, department and manager, with CSV), and Extend a cut-off / Close cycle. - GET /api/company/perf/reviews returns every manager's ratings and comments company-wide, including his own review written by Kavya. This goes against the product's promise "Until you release, nobody sees anybody else's words."No e2e test
ISS-182
Medium
29 Sept 2026
"Close cycle" closes a review cycle in one click, with no confirmationPerformanceOpenA confirmation dialog that states the consequences, like "Lock this cycle?" and "Release this cycle?".In the cycle "⋯" (Cycle actions) menu, "Close cycle" calls PATCH …/review-cycles/{id} {status:"closed"} directly. A confirm ("Close it anyway?") appears only if the server rejects with CYCLE_HAS_UNFINISHED_REVIEWS. When all reviews are finished, one mis-click closes the cycle permanently ("closing is final"). This was found from the client code and was deliberately not clicked. The same pattern as ISS-158 (Surveys).No e2e test
ISS-181
Medium
29 Sept 2026
Feedback page: employees get 403 on their own submissions, but the page says "Nothing sent yet"PerformanceFeedback › MeOpenEmployees can list their own submissions (or the feature is hidden). A load failure shows an error, not an empty state.- GET /api/me/perf/feedback-cases returns 403 "Viewing feedback requires Feedback access" (the Employee role has no feedback permission). - The page shows "My submissions — Nothing sent yet" and still offers "Send feedback", which may fail the same way. - For Kavya and Vikram the same call returns 200 with canSubmit: true. The admin gets canSubmit: false, reason: employee_link_required.No e2e test
ISS-180
Medium
29 Sept 2026
13 duplicate "Performance review · HR signoff" approvals for Kavya go to a manager and point at no reviewPerformanceInbox › WorkflowsOpen- One sign-off per review, routed to HR, showing the review and linking to it. - Orphaned tasks are cancelled, and the panel shows the right kind label and date format.- There are 13 pending hr_signoff tasks, all titled "Performance review · HR signoff · Kavya Raghunathan", created 22 Sep 18:49–18:57 and due 30 Sep. They were assigned relationship:hr_partner to Harsh, a Reporting Manager. - The workflow designer ("Performance review sign-off", trigger "Review finalization requested") sets the assignee to hr-admin. - None of the 13 entityIds matches a review in any current cycle. - The detail panel is labelled "Leave request". It shows DUE twice ("tomorrow, 12:00 pm" and raw 2026-09-30T06:30:03.207Z), with no link to the review, no score and no comments, only Approve/Decline. - Releasing Q2 raised no sign-off at all.No e2e test
ISS-179
High
29 Sept 2026
Employee profile → Performance tab shows the same unrelated review for everyone (?employeeId is ignored)PerformanceOrganization profileOpenFilter by employee. Show that person's latest cycle name, stage, score and band, and their goal sheet.- GET /api/company/perf/reviews?employeeId=&limit=25 returns the same company-wide list for any employee id. It is 32 reviews across cycles, starting with Aarav's manager review. - So every profile shows "Latest review · Cycle (blank) · Reviewed by their manager · Pending" and "No goals set — Quarterly goals and key results will show up once planning is done." - Harsh's real released review (3.3, Meets expectations) and his 4 KRAs don't appear. - Anyone with performance.cycle.view also gets every review's ratings and comments from this endpoint.No e2e test
ISS-178
High
29 Sept 2026
Performance: after a partial release, 9 people are stuck in a "Released" cycle, still asked to self-assess but blockedPerformanceOpenEither release marks all participants released (unrated ones get "released without a rating"), or the cycle stays open for them. Employees should not be asked to do something they cannot do.- The release dialog says "Release anyway — I understand 9 employee(s) will be released without a rating". But those 9 participants have releasedAt: null (GET …/participants), so they were never released. - The cockpit still lists them under "Self-assessment · 2 Oct · 3d left" or "Reviewer rating · 9 Oct". - Kavya's page says "Needs you · 1 waiting — Write your self-assessment · closes 2026-10-02". The form then says "Self-assessment is read-only — HR has locked this cycle. Nothing can be changed unless it is released." The cycle is not locked; it is already released. - Managers' queues (/api/me/perf/my-reviews/reviewing) are empty. The cycle actions offer only "Extend a cut-off…" and "Close cycle", not Release. - So these 9 reviews can never finish or be released. They also never get the "Your review was released without a rating" state.No e2e test
ISS-177
Low
29 Sept 2026
Notification settings show all 93 topics to everyone, including candidate emails and engine alertsSettingsNotificationsOpenShow the topics that apply to the user's role, mark or hide Slack when it isn't connected, and use the user's timezone. See also ISS-051 and ISS-113.Zoya (Employee) gets the same 93 rows as the super admin. These include "Application received (candidate)", "Offer released (candidate)", "Reference request (referee)", "Engine health alert/recovered", "Reviewer overdue (HR)" and "Inbound email needs triage". None of these reach an employee, and the "(candidate)" ones are emails to outsiders. Email is off for every topic by default, and Slack is disabled everywhere without saying why. Quiet hours says "Times are in UTC", while Profile's timezone and the rest of the app use IST. The helper text says "How mutable notifications are bundled".No e2e test
ISS-176
Low
29 Sept 2026
Test and probe workflows are visible to the company and offered in pickers; Campaigns lists duplicates and retired flowsSettingsWorkflowsOpenTest fixtures are hidden from tenants, and pickers list each published, non-retired workflow once.- Authoring lists "Dead-letter probe" (deadletter_529f1c92, Active, Leave, Platform, on test.deadletter_13d1c934) and "Demo Workflow" (module "Demo Module", which also appears in the Module filter). - Events shows "Test deadletter 13d1c934 starts Dead-letter probe" with an on/off switch. New approval chain → Process offers "When test deadletter 13d1c934". - New campaign → Workflow lists Leave Cancellation, Attendance Regularization, Shift Swap, Annual Leave Approval, Requisition Approval, Performance review sign-off and Resignation twice each. It also offers retired flows (Leave Encashment, Probation review due) and the probe. - Operations keeps a parked test.deadletter_13d1c934 event.No e2e test
ISS-175
Low
29 Sept 2026
Platform SLA policies escalate to "placeholder hr head", "placeholder ceo" and "placeholder hr manager"SettingsWorkflows › SLA policiesOpenLadders name real (mapped) roles, and an unmapped rung is flagged.Most platform policies' ladders read like "after 5 business days: tell placeholder hr head" or "after 10 business days: tell placeholder ceo", and a corrective action goes "for placeholder hr head". Role mappings has no "placeholder" entries, so it's unclear who is told when these clocks breach.No e2e test
ISS-174
Medium
29 Sept 2026
The delegate picker leaves out Kavya Raghunathan and Aarav Krishnamurthy, but offers people who have never signed inSettingsDelegationOpenEveryone with an active sign-in who can approve, and not accounts that can't sign in yet.The list (GET /api/company/people/directory-basic, 19 people) never includes Kavya Raghunathan (HR Head) or Aarav Krishnamurthy (Executive/CEO), so nobody can delegate to HR or the CEO. It does include Aditya Ranganathan, Asha Rao, Meera Kulkarni and Ritika Chourasia, whose invitations are still pending.No e2e test
ISS-173
Medium
29 Sept 2026
Active sessions: 100 sessions all at 127.0.0.1, no "this device", and idle sessions are never endedSettingsSign-in & securityOpenRecord the client IP, mark this device, and page the list. Expire idle sessions per policy. Give the heading the menu's name.- Every session for Ops Maven, Kavya and Zoya shows IP 127.0.0.1, while the audit log records real IPs (171.76.87.33, 2401:4900:…). - The list stops at 100 rows, with no paging, and doesn't mark the current device. - Sessions last active "5 days ago" are still listed, although Security sets "Sign out when idle: After 15 minutes". - The page heading says "Security", the same as Workspace → Security; the menu calls it "Sign-in & security". Update password is enabled while the fields are empty.No e2e test
ISS-172
Medium
29 Sept 2026
Audit log "Type" filter only offers types from the rows already loadedSettingsAudit logOpenThe filter lists every type from the server, and records carry their module's type.Page 1 offers only Company, Lifecycle, Platform and Travel & expenses. After paging, "Workflows" appears. The last 1,000 entries (GET /api/company/audit-events) also have Recruitment (106), Employees (76), Assets (13), Attendance, Leave, Documents, Notifications, Performance, Policies and Access, which can't be chosen. Most module records (asset, talent_offer, talent_requisition, attendance_override, shift, search…) are typed "Platform" (see ISS-048).No e2e test
ISS-171
Medium
29 Sept 2026
Workflow designer: the cost-threshold branch opens as "Requested days is 999999", and Test run uses leave fieldsSettingsWorkflows › designerOpenThe inspector round-trips the stored expression, Test run offers the trigger's own fields, and versions can be listed and compared.The inspector shows the rule as WHERE Requested days · is · 999999, not estimatedCost > 50000. Editing and saving from there would probably replace the real rule. The canvas prints the condition twice (as the pill and again as a caption). Test run's sample payload for this asset flow is request.days, request.type, employee.department, employee.balance, which are leave fields, so the cost branch can't be exercised without adding a field by hand. The designer has no version history, although the list says "v6 live · 6 versions".No e2e test
ISS-170
Low
29 Sept 2026
Roles: Company Super Admin card says "13 members", but its member list has 1SettingsRolesOpenCount only this company's holders, and show read-only checkboxes on inherited roles.The card reads "13 members" (memberCount: 13 in GET /api/company/roles), but Members shows "1 MEMBER" (Ops Maven), which matches Users. The count seems to include holders in other companies. The inherited role's permission grid also has 246 enabled checkboxes, although the page says inherited roles are read-only. Save stays disabled, so this is only confusing.No e2e test
ISS-169
Medium
29 Sept 2026
"Invite user" defaults the role to Company Super AdminSettingsUsersOpenNo default, or the least-privileged role (Employee).Role is pre-selected as Company Super Admin (hint "One company, all of it"). An admin who fills in only the name and email grants full company access.No e2e test
ISS-168
Medium
29 Sept 2026
Settings → Users: the Status filter does nothing, and paging is brokenSettingsUsersOpenThe filter narrows the list, and each page shows the rows its footer describes.With Invited or Suspended selected, all 25 accounts still show, including Active ones. Page 1 shows all 25 rows while the footer says "1–12 of 25 · Page 1 of 3". Page 2 shows no rows while the footer says "13–24 of 25".No e2e test
ISS-167
Medium
29 Sept 2026
HR Head sees Workflows and Roles in Settings but is denied them, and "Invite user" has an empty role listSettingsRBACOpenHide menu entries the user can't open. Load the roles the inviter may grant, or hide Invite. Don't offer to suspend a higher-privileged account.- The Settings menu lists Workflows and Roles, but both open "This page is not yours to see". The HR Head role lacks settings.workflows.* and settings.roles.*. - Invite user opens, but the Role list is empty ("Pick a role") because GET /api/company/roles returns 403. HR can't invite anyone, and no message explains why. - The row menu offers Suspend on the Company Super Admin (Ops Maven), the only super admin. This was not clicked, so it is unverified whether the server refuses it.No e2e test
ISS-166
High
29 Sept 2026
A Reporting Manager can't open any Settings page, not even Profile, Notifications, Delegation or Sign-in & securitySettingsRBACOpenEvery signed-in user can open the personal Settings pages. Scoped roles include every self-service permission the Employee role has.Every page shows "This page is not yours to see", with no settings menu. Harsh can't change his password, set up two-factor, revoke sessions, set notification preferences or name a delegate. Managers need delegation more than anyone. Zoya (Employee) can open all six personal pages. The Reporting Manager role has 16 self-service permissions against the Employee role's 21, and lacks settings.me.manage, assets.me.view/manage/acknowledge and payslips.me.view (GET /api/company/roles/{id}/permissions).No e2e test
ISS-165
Low
29 Sept 2026
Form builder logic: condition picker shows internal keys ("answers.q_mugmmc6c1") instead of question textSurveysTemplates › form builderOpenList questions by number and label, e.g. "1 · How likely are you to recommend…".The options read answers.q_mugmmc6c1 ; answers.q_mugmmc6c2 ; answers.q_mugmmc6c3 ; answers.q_mugmo4zx1. Only the summary line above ("Show when 'How likely…' is at least 5") uses the question text. The Logic map's edge label ("shows") is also clipped behind the zoom controls in dark mode.No e2e test
ISS-164
Low
29 Sept 2026
Surveys: Distribute → "Invitation email" lists every company email template (Termination letter, Offer released…)SurveysTemplatesOpenOffer only invitation-type email templates, or at least group them.Beside "Default invitation", the list has 23 unrelated templates, including "Termination letter", "Offer released", "Application rejected" and "Investigation summary pack (to the CEO)". Any of them can be sent as a survey invitation.No e2e test
ISS-163
Low
29 Sept 2026
Surveys: anonymity wording differs between builder and Launch, and "Anonymous — no reminders possible" still offers remindersSurveysOpenUse the same three terms in both places, and disable or hide the reminder cadence when the round is anonymous.- The builder's Settings → Anonymity offers "Off — responses carry the respondent / Optional / Forced — one-way anonymous". - The Launch dialog offers "Optional — respondents are recorded unless the form forces anonymity / Anonymous — no reminders possible, identity never stored / Attributed — responses carry the respondent". - With "Anonymous" chosen, "Remind every (days)" stays enabled at 7.No e2e test
ISS-162
Medium
29 Sept 2026
Surveys: Launch lets you pick an audience smaller than the minimum response count, so results can never unlockSurveysOpenShow the audience count in the Launch dialog, and warn or block when it's below min-N, pointing to Settings to lower min-N.The dialog shows no audience size and no warning, and Schedule is enabled. The existing round was launched this way. Its Results say "Distributions unlock at 5 responses to protect individual answers — 0 so far", which can never happen with 2 people (see also ISS-159).No e2e test
ISS-161
Medium
29 Sept 2026
Form builder: "Insert variable" is always empty — GET /api/v1/templates/variables returns 503SurveysTemplates › form builderOpenThe variable catalogue loads. If it fails, show an error instead of "No matching variable."Every time a question is expanded, GET /api/v1/templates/variables returns 503. The picker shows "No matching variable.", so prefill paths (placeholder employee.first_name) have to be typed blind.No e2e test
ISS-160
High
29 Sept 2026
Surveys: invited employees can't find the survey anywhere in the appSurveysOpenOpen survey invitations appear in the employee's Inbox/Home ("To do: answer survey"), along with reminders and a survey notification topic.No survey appears anywhere: no Home card, no Inbox item ("6 things are waiting on you" lists only asset items), and no notification. Surveys isn't in her sidebar, and /surveys redirects to /me. The only way to answer is the emailed one-time link. Settings → Notifications has no survey topic either, so no in-app or Slack channel can be enabled.No e2e test
ISS-159
Medium
29 Sept 2026
Surveys: launching a round made 3 invitation links per person (audience of 2 → "0 / 6 responded")SurveysOpenOne link per audience member per round (idempotent launch). "Invited" should equal the audience size, and employees should be recorded as internal respondents.The round shows "0 / 6 responded", and the campaign's progress says invited: 6. Links & runs lists Zoya Kirmani 3 times and Harsh Vardhan Mistry 3 times, all open and all created within a few seconds of each other (12:54–12:55). Each run is respondentKind: "external" even though they are employees. So each person got 3 one-time links, and the response rate can never go above 33%.No e2e test
ISS-158
Medium
29 Sept 2026
Surveys: "Close" ends a live survey round in one click, with no confirmationSurveysOpenAsk for confirmation, e.g. "Close this round? N people haven't responded; their links stop working." The action should also look like an action, not like a checkbox.The click sends POST /api/company/templates/form-campaigns/{id}/close at once. (In QA the request was blocked, so the round is still open.) There is no confirm dialog and no note that open links will stop working. The control is a small checkbox-style icon labelled "Close", right beside the response count, so it's easy to hit by mistake.No e2e test
ISS-157
High
29 Sept 2026
A claim can't be tied to its trip, so the advance is never nettedExpensesOpenClaims raised for a trip carry travelRequestId (the trip page has a "Claim expenses" button that should start one), and the advance is netted.The New claim form has no trip field, and the client sends travelRequestId: null. The approved claim shows "Advance already paid ₹0.00 · To be reimbursed ₹16,900.00", so the ₹8,000 advance stays outstanding and would be paid twice. The claim also went through manager endorsement, which a trip-linked claim would skip.No e2e test
ISS-156
Medium
29 Sept 2026
A claim with any line over its category limit can't be sent, and the reason is never shownExpensesOpenEither block Send claim with a clear message, or allow an over-limit line with a justification, for finance to reduce. The claim page already has a "Reduce" decision for this.The claim form shows "Above the Demo – Client meals limit." under the line but still lets you press Send claim. Submit then fails with 422 OVER_LIMIT ("Some lines are above their category limit and cannot be submitted"), with no message; the claim stays a draft. (Before that it needs If-Match; without it, 428 IF_MATCH_REQUIRED.)No e2e test
ISS-155
High
29 Sept 2026
An expense claim sent late evening in India fails ("cannot be dated in the future") and leaves an empty draftExpensesOpen- Validate dates in the company's time zone (Asia/Kolkata), and default the item date to a date the server accepts. - On any item failure, keep the dialog open with the error instead of leaving an empty draft.- The client creates the claim (201, items: []), then adds the item → 400 "Expense date: An expense cannot be dated in the future", because the server compares against UTC. - No error is shown. The dialog closes, and an empty ₹0 Draft claim stays in the list; everything typed is lost.No e2e test
ISS-156
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedexpenses-journeyAuto-loggedNo e2e test
ISS-155
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedexpenses-journeyAuto-loggedNo e2e test
ISS-154
High
29 Sept 2026
Asset receipt "Acknowledge" does nothingAssetsInboxOpenThe acknowledgement is recorded on the movement, and the receipt leaves the inbox.No request is sent and no message is shown. The receipt stays open, and My things keeps "Needs you — Sign for Demo – Loan laptop 01". Asset receipts therefore can't be signed. Related: ISS-143, receipts shown to every user.No e2e test
ISS-154
Auto
28 Sept 2026
[auto] Uncaught page error: companyId is not definedassets-requestAuto-loggedReferenceError: companyId is not defined | at $ (https://qa.satellitehr.com/assets/inbox-L0tfbPlc.js:1:5237) | at onAcknowledge (https://qa.satellitehr.com/assets/inbox-L0tfbPlc.js:1:15029)No e2e test
ISS-153
Medium
29 Sept 2026
Asset "Hand one over" only reserves the unit; the hand-over receipt vanishes once the asset is returnedAssetsOpen"Hand one over" issues the unit to the requester in one step. Receipts stay until they are acknowledged or explicitly cancelled.- On an approved request, "Hand one over" moves the unit to Reserved ("Handed over against a request") with no holder, so nobody gets a receipt. A second "Hand over" on the asset page is needed to actually issue it. - The pending "Hand over: LOA-0001 …" receipt then disappears from the holder's inbox once the asset is returned, replaced by "Return: LOA-0001 …". The hand-over was never acknowledged.No e2e test
ISS-152
High
29 Sept 2026
Employees can no longer request an asset: "This action needs view access to asset-requests"AssetsRBACOpenThe Employee role can create and view its own asset requests. Better still, don't offer "Request something" to people who can't use it.Toast "Could not ask for loan laptop — This action needs view access to asset-requests". Nothing is created. The same employee raised a Mobile phone request on 23 Sep, so the Employee role seems to have lost a grant since then.No e2e test
ISS-151
Low
29 Sept 2026
Copy mismatches in AssetsAssetsOpenThe "What you can do in Equipment" help points to "Equipment → Reports", but there is no Reports tab (Register / Requests / Who has what / Catalogue), and the module is called "Assets" in the sidebar. The Report lost dialog says "No signature is collected — A recovery completes without the holder signing". Laptop rules say "5 units follow it" while the register lists 4 laptops. History timestamps are US-style ("9/28/2026, 6:40:00 PM") while the rest of the page uses "September 28, 2026". The My things page carries a "Refer someone / Refer a candidate" block. The asset request workflow's "Over the cost threshold?" reads request.estimatedCost, but the request form has no cost field.No e2e test
ISS-150
Low
29 Sept 2026
Manager Harsh can open company-wide Expenses (all claims, File for a colleague) but not "My things"AccessOpenA manager sees only their team's claims, and has self-service My things like other employees./expenses/claims shows every company claim to Harsh. /me/things and /assets/* say "This page is not yours to see", and his self-service sidebar has no "My things", so he can't request equipment for himself.No e2e test
ISS-149
Medium
29 Sept 2026
Finance employee (Arnav Deshmukh) has no finance access; the finance approver group is CEO/CTO/HR/adminTravel & expensesAccessOpenCheck that this is intended. It blocks a demo of a "Finance" persona.Arnav (Finance) lands on /me and has no Expenses admin screens and no approvals. The "Finance Approver" tasks for EXP-00003 went to Aarav, Vikram, Kavya, Harshit Bhalla and the admin.No e2e test
ISS-148
Medium
29 Sept 2026
Claim marked Approved (finance_approved) before any line has a finance decisionTravel & expensesOpenOne place to settle the claim, or the Inbox task opens the claim's finance bar.EXP-00001 (₹2,000) shows as Approved, with Approved ₹2,000 in the list. Its page still has "Finance decisions … 1 line still to decide · Record the decisions", and the line status is "claimed". The finance step in the Inbox is only Approve/Decline, labelled "Leave request" (see ISS-078), with no link to the line decisions.No e2e test
ISS-147
Medium
29 Sept 2026
Expense totals disagree across screensTravel & expensesOpenFigures that agree, and the claim reference shown.Zoya has claimed ₹3,200 over 2 claims (the Reports tab says the same). Her "Your claims, all told" card says Claimed ₹2,000.00 / Waiting ₹2,000.00. Categories says "In use 0" and Accommodation "Claim lines 0", while Spend shows 2 Accommodation lines. The Spend report labels ₹2,000 approved as "Reduced". Claim names read "Expense claim" on Claims but "Untitled" on Reports. The EXP-000nn references appear nowhere in the UI.No e2e test
ISS-146
Medium
29 Sept 2026
Expense claim that the manager approved still says "With your manager" / "Awaiting approval … This claim was approved"Travel & expensesOpen"With finance" (the status filter has that option) and no "was approved" banner until the whole chain finishes.Zoya's My claims shows "With your manager". The admin claim page shows "Awaiting approval · With an approver" and, underneath, "This claim was approved — Harsh Vardhan Mistry decided on 2026-09-25."No e2e test
ISS-145
Medium
29 Sept 2026
Employee profile → Assets says "No assets assigned" for someone who holds an assetOrganization profileAssetsOpenThe tab lists LAP-0001."No assets assigned — Laptops, monitors, and access cards issued to this employee will appear here."No e2e test
ISS-144
Low
29 Sept 2026
Receipt titles keep the asset's old nameAssetsOpenShow the current name, or say it was renamed.LAP-0005 is now called "Demo – Spare laptop", but its receipts are still titled "Issue: LAP-0005 — Demo – Laptop for Rohan".No e2e test
ISS-143
High
29 Sept 2026
Asset receipts for other people show up in every user's Inbox and Home, with an Acknowledge buttonAssetsInboxOpenA handover or return receipt goes only to the person who holds the asset.Everyone sees "5 things are waiting on you: Issue: LAP-0004 — Demo – Probe laptop · Return: LAP-0004 … · Issue: LAP-0005 — Demo – Laptop for Rohan …". These are the receipts of Probe Joiner (Demo) and Rohan Verma (Demo). Opening one shows "I have read and understood this document" with Acknowledge / Decline with follow-up, so anyone could sign someone else's receipt.No e2e test
ISS-131
High
29 Sept 2026
A resignation now starts two "Resignation" workflow runs that wait on Harshit Bhalla, not the managerLifecycle offboardingWorkflowOpenOne authorisation run per exit, starting with the leaver's manager.Two instances of the same workflow version (fe74e6f5… and af8b5f3c…, version ad037c73…) start for exit 2937ce21…. Both wait at "Acknowledgement drafted" on Harshit Bhalla. No "Exit authorisation" run (manager acceptance) starts; the day before, that run correctly went to the manager. Workflow runs today also show a different initiator, so the workflow configuration seems to have changed.No e2e test
ISS-142
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitieslifecycle-offboardingAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-141
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitieslifecycle-ktAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-130
Low
29 Sept 2026
The KT plan counterpart sees the leaver as "Employee" instead of their nameLifecycle knowledge transferOpenShow the leaver's or mover's name to anyone who is a counterpart on the plan.The card is titled "Employee — Transferring — no due date", with no name, while HR sees "Rohan Verma (Demo)". The counterpart can't tell whose handover it is.No e2e test
ISS-140
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitieslifecycle-ktAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-129
Medium
29 Sept 2026
After a department transfer, the department headcount doesn't change and the position stays in the old departmentLifecycle transfersOrganizationOpenHeadcount follows the employee's department. A department transfer also moves or re-picks the position, or flags the mismatch.The Backend Developer card shows Headcount 0, while the employee list filtered by that department includes him. His position is still "IT Helpdesk Engineer", a position that belongs to Information Technology. The transfer form offers no way to change position (see ISS-084).No e2e test
ISS-139
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesattendance-dailyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-138
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedattendance-dailyAuto-loggedNo e2e test
ISS-137
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesattendance-dailyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-136
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesattendance-dailyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-135
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesattendance-dailyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-134
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedattendance-dailyAuto-loggedNo e2e test
ISS-133
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesattendance-dailyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-132
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedattendance-dailyAuto-loggedNo e2e test
ISS-131
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesattendance-dailyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-130
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesattendance-dailyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-129
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedattendance-dailyAuto-loggedNo e2e test
ISS-128
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesleave-journeyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-127
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedleave-journeyAuto-loggedNo e2e test
ISS-126
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesleave-journeyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-125
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedleave-journeyAuto-loggedNo e2e test
ISS-124
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesleave-journeyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-123
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedleave-journeyAuto-loggedNo e2e test
ISS-122
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesleave-journeyAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-121
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedleave-journeyAuto-loggedNo e2e test
ISS-120
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedleave-journeyAuto-loggedNo e2e test
ISS-119
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedleave-journeyAuto-loggedNo e2e test
ISS-118
Auto
28 Sept 2026
[auto] Uncaught page error: undefinedleave-journeyAuto-loggedNo e2e test
ISS-117
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesleave-setupAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-116
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesleave-setupAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-115
Low
28 Sept 2026
Employee "People" directory shows only yourselfMePeopleOpenAt least the teammates (the Swap a shift dialog already lists them), or a message that the directory is limited.As Zoya, "Find a colleague — who they are, what they do, who they work with. Everyone" lists only Zoya Kirmani. Harsh sees his 4 reports.No e2e test
ISS-114
Low
28 Sept 2026
Home approval counts don't match the InboxHomeInboxOpen — see ISS-530The same number everywhere, or labels that say what each one counts.Kavya's Home says "2 approvals are waiting for you" but Inbox shows "Awaiting your decision 7". Harsh's Home says "13 approvals are waiting for you" but Inbox shows 6. Zoya's sidebar badge shows Inbox 13 while her inbox has 5 open.No e2e test
ISS-113
Low
28 Sept 2026
Notification settings have no leave eventsSettingsNotificationsOpenLeave events can be switched per channel like the attendance ones.There are rows for "Attendance corrected by HR", "Attendance correction decided", "Overtime decided" and "Shift swap decided". There's nothing for a leave request submitted, approved or rejected, or for leave cancelled, although the leave workflow sends those messages in-app.No e2e test
ISS-112
Low
28 Sept 2026
Worked hours and overtime contradict each other on an HR-corrected dayAttendanceCalendar › My attendanceOpenOne consistent worked-hours figure, and no overtime on a short day.Zoya, Mon 21 Sep: "Present · 10:12 am – 7:04 pm · 7.4h worked · 1.1h overtime". 7.4h is below the shift, yet 1.1h of overtime is shown. The Edit day entry dialog for the same day says "Derived hours: 7.9h".No e2e test
ISS-111
Low
28 Sept 2026
Employee profile → Timesheets has no datesEmployeesprofile › TimesheetsOpenFor Zoya the tab shows "Hours recorded 125.6h · 14 of 14 days", but every row's Date (and Status) is "—", so the hours can't be matched to days.No e2e test
ISS-110
Medium
28 Sept 2026
A Reporting Manager sees company-wide Leave and Attendance admin, including HR-only pagesLeaveAttendance › RBACOpenManagers see their team's requests, balances and attendance. Policy, settings and the manual sheet stay with HR.Leave → Requests lists all 7 company requests ("Every request across the company"). Balances tracks 26 people, with the "Adjust balance…" lever. Policies offers "New policy". Attendance shows everything: the Manual sheet (labelled "HR-only surface"), Settings with Save buttons, Bulk assign roster, Overtime policy. At the same time these pages call /organization/departments, /location/locations and /location/jurisdictions and get 403, so the department filters are empty. His Home counts "Total employees 3".No e2e test
ISS-109
Low
28 Sept 2026
Leave and attendance inbox items show internal step codes ("Mgr quick · … · at mgr quick")InboxWorkflowOpenThe step name and the request (e.g. "Paid Time Off · 1–2 Oct").Harsh's Inbox → Decided → Leave lists "Mgr quick · Zoya Kirmani · at mgr quick". Attendance lists "Mgr regularize", "Mgr swap", "Mgr ot review", "Hr ot confirm". These are the step codes mgr_quick, hr_ot_confirm… The step names are "Manager approval", "Manager review" and "HR confirmation".No e2e test
ISS-108
Low
28 Sept 2026
Comp-off wallet says "2 days to use" when the credits add up to 1.5MeOvertime & comp-offOpen"1.5 days to use".The wallet heading reads "2 days to use" above chips of 0.5d (lapses 19 Dec) and 1d (lapses 21 Dec). The leave balance shows Comp-off 1.5.No e2e test
ISS-107
Low
28 Sept 2026
Earned comp-off is shown as negative "taken"Leave balancesOvertimeOpenCredits count as accrued/earned. Taken stays 0.Zoya's two approved overtime credits (+0.5d, +1d) show as "Comp-off -1.5 used this year" (Me → Leave → Balances), "Taken -1.5d" (HR Balances and ledger panel) and "-1.5 taken · 0 encashed" (Employee → Time off).No e2e test
ISS-106
High
28 Sept 2026
Leave policy entitlements are never credited ("Policies not applied."), so almost everyone has 0 daysLeavePolicies › BalancesOpenAn active policy grants (or accrues) the entitlement to everyone in its audience, and adjustments appear in the row breakdown.The "Paid Time Off (PTO) — company default" policy is Active with 20d / year (Edit shows Entitlement 20, Carry-forward 30, Annual grant). Still, every balance shows Opening 0 / Accrued 0, and Harsh, Kavya and the other 23 people have 0 PTO. Zoya has 12 only because of a manual "+20d · Adjustment · Policies not applied." in her ledger. The self-service cards read "Paid Time Off (PTO) 12 / 0 days" (entitled 0). The other 8 default policies list "—d / year". The leave workflow starts with "Balance check: employee.balance <= 0 → Insufficient balance", so these people can't get leave through.No e2e test
ISS-105
High
28 Sept 2026
Approved leave doesn't show on the attendance calendar: those days read "No record"LeaveAttendanceOpenApproved leave marks the day L on the muster and on My attendance, and those days don't count as missing or absent.Every one of those days reads "Zoya Kirmani: Thu 24 Sep · No record. Mark or correct this day." (Oct: "Thu 1 Oct · No record", "Mon 5 Oct · No record"). No day uses the "L · Leave" legend. Zoya's own calendar leaves 24/25 Sep blank, although her Home says "3 away". "On leave today" and the audit "Absences — Unplanned, without approved leave" depend on this link.No e2e test
ISS-101
High
28 Sept 2026
A fully approved transfer stays "In approval": generating the transfer letter fails with "Missing required fields"Lifecycle transfersTemplatesOpenThe letter template's required merge fields come from the transfer and the employee, and generation succeeds on the first attempt.Workflow 2f4a6f05-e4bb-4225-832d-5bc02d489b4d reaches "Mint the transfer letter" (template transfer-letter-inter-office). The step fails with "Missing required fields" on every retry. The transfer record stays requested / "In approval", with every approval ticked. The page doesn't say which fields are missing.No e2e test
ISS-104
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitieslifecycle-transferAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-100
Low
28 Sept 2026
The HR approver group lists Aarav Krishnamurthy twice, so he gets duplicate approval tasksWorkflowRBACOpenDe-duplicate resolved approvers."HR review · any one of 5 — Aarav Krishnamurthy, Ops Maven, Vikram Raghavan, Kavya Raghunathan, Aarav Krishnamurthy, Harshit Bhalla" (six names, one repeated). For the Rohan Verma (Demo) transfer (instance 2f4a6f05…), Aarav's inbox shows two identical "Approval 7 · Lifecycle" items.No e2e test
ISS-103
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitieslifecycle-transferAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-102
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitieslifecycle-transferAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-101
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitieslifecycle-onboardingAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-100
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitieslifecycle-onboardingAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-099
Medium
28 Sept 2026
Ticking an onboarding task right after uploading its document fails with "Changed elsewhere"Lifecycle onboardingOpenRefresh the task after an upload, so the tick succeeds first time."Changed elsewhere — Someone updated this record first — it has been reloaded", and the task stays open. The upload bumped the task's rowVersion, but the panel kept the old one. The next tick then fails with "Couldn't update the task — Complete or waive the preceding onboarding stage first (ONBOARDING_STAGE_ORDER · 409)".No e2e test
ISS-098
Low
28 Sept 2026
The probation-review auto case shows "Manager —" and the rehearsal confirm needed no confirmation stepLifecycle confirmationOpen"Confirm" on the review panel applies immediately (the employee becomes permanent) with no confirm dialog or note, unlike Extend and Initiate separation, which confirm first.No e2e test
ISS-097
High
28 Sept 2026
One resignation starts two approval workflows, and one of them can't find the managerLifecycle offboardingWorkflowOpenOne authorisation workflow per exit, and the subject (the leaver) passed so the manager resolves.Two instances ran for exit 1a62fd53…: - "Exit authorisation" (d1138515…), with Manager acceptance correctly assigned to Harsh Vardhan Mistry; - a "Resignation" flow (e31d483b…), whose "Reporting manager accepts" step says relationship:manager_or_hr_partner (no subject; HR admin). It re-creates the task for each HR admin in turn (Aarav → Ops Maven → Vikram → …), so it never finishes.No e2e test
ISS-096
Low
28 Sept 2026
Waivability is read from the live template, contrary to the template's own textLifecycle offboardingOpenThe template says "an exit already in flight keeps the lanes it was created with". But an exit created while the Assets lane was waivable returned 409 CLEARANCE_NOT_WAIVABLE once the template was switched back. Switching the template on again made the same waiver succeed.No e2e test
ISS-095
High
28 Sept 2026
The exit card has no way to waive a lane or record the final settlementLifecycle offboardingOpenA Waive action (with a reason) on waivable lanes, and a settlement panel for Finance/HR.- Lane menus only offer Mark cleared / Mark pending / Mark blocked. There's no "Waive" option, even on lanes the template marks "HR may waive with a reason" (KT by default). The API accepts {status:'waived', waiverReason}. - "Mark settled" returns 409 SETTLEMENT_PENDING ("Finance settlement must be completed first"). No screen lets anyone record that settlement. It only works via PATCH /exits/{id} {settlement:'completed'}.No e2e test
ISS-094
Medium
28 Sept 2026
A transfer to a department without a head can't finish its approval chainLifecycle transfersOpenEscalate an unresolved step (e.g. to HR), or block submission with a clear message.Moving someone to Delivery: "Receiving department head — Nobody yet · department has no head". The chain waits for no one, and only the HR override moves it on (afterwards the step shows "Skipped"). Only 3 of 11 departments have a head.No e2e test
ISS-093
High
28 Sept 2026
Lifecycle approval tasks in the Inbox are titled "Approval 5 · Lifecycle" with no detailsInboxLifecycleOpenName the case (e.g. "Transfer · Probe Joiner (Demo) → Delivery", "Resignation · last day 30 Sep") and link to it.Transfer and exit approvals show as "Approval", "Approval 2" or "Approval 5". The detail says only "Kavya Raghunathan · at approval 5", with no employee, transfer destination or last working day. Same root cause as ISS-078.No e2e test
ISS-092
Low
28 Sept 2026
The exit card's "Routes through" text doesn't match the workflow that runsLifecycle offboardingOpenShow only the steps that apply to this case.The card says "Reporting manager accepts → Functional manager accepts → HR Head approves the last working day". The instance actually ran Manager acceptance → HR confirms the last working day (any HR partner) → Exit interview. The transfer card likewise lists every branch (Releasing HR review, Skip-level, Finance…) for a simple department move.No e2e test
ISS-091
Medium
28 Sept 2026
Lifecycle actions fail silently: rejected requests show no messageLifecycleOpenShow the server's message.No toast or inline error is shown for any of these: - Start exit with a past last day: 409 INVALID_EXIT_DATE. The date picker also offers past dates. - Open review: 409 LIFECYCLE_CASE_EXISTS. - Clearance lanes: 409 KT_CLEARANCE_PENDING, 500. - Mark cleared: 409 CLEARANCE_PENDING.No e2e test
ISS-090
Critical
28 Sept 2026
Clearing the Assets lane of an exit always fails with a 500, so no exit can finishLifecycle offboardingOpenThe lane clears once nothing is outstanding on the asset register, which the card itself says: "Nothing on the register is outstanding."PATCH /people/lifecycle/exits/{id}/clearance/{assetsLaneId} {status:'cleared'} → 500 INTERNAL_ERROR (requestIds ba4ce80c…, c0419da6…, 8ce69180…). The lane isn't waivable by default (409 CLEARANCE_NOT_WAIVABLE), and "Mark cleared" on the exit then fails with 409 CLEARANCE_PENDING. The exit is stuck in clearance, and the UI shows no error.No e2e test
ISS-089
Low
28 Sept 2026
Onboarding document upload attaches to the last stage ("Induction"), not the current oneLifecycle onboardingOpenAttach to the earliest open document step.With only Offer complete, the panel says "Attaching to the current step: Induction · Day-1 induction session". The uploaded file is filed against Induction, not Docs.No e2e test
ISS-088
High
28 Sept 2026
The probation-confirmation questionnaire is assigned to HR instead of the manager, and appears in no inboxLifecycle confirmationWorkflowOpen — confirmed (via SHR-090)
e2e run 15 Oct 2026
The form goes to the primary manager and shows in their Inbox with the SLA.The "Probation confirmation" workflow instance c1dd6b94-6773-4aa0-8a70-b914e9765e5f waits on "Confirmation review questionnaire" assigned to Kavya (the initiator), not the employee's primary manager (Harsh). The task doesn't appear in Kavya's Inbox or on her Home page.3 tests: 3 fail
tests
  • ✗ SHR-090 · the probation confirmation form lists the seven evaluation criteria
  • ✗ SHR-090 · each criterion takes a self rating, a rating and a comment
  • ✗ SHR-090 · the Reporting Manager, the Department Head and the HR Head each review the form
ISS-087
High
28 Sept 2026
The confirmation review auto-opened at onboarding completion is incomplete and blocks a proper reviewLifecycle confirmationOpen — confirmed (via SHR-090)
e2e run 15 Oct 2026
- The auto-opened review carries the manager, the approval chain (manager → HR) and the company's standard question set. - Otherwise "New review" should attach to the existing review instead of failing silently.- The review shows Manager "—", "No approval chain is attached to this review", and question set "Demo Question Set" with 0 questions. - Its periodic check-ins can't be recorded: "“Demo Question Set” has no questions yet". - Opening a proper review with the "Probation confirmation — standard" set fails with 409 LIFECYCLE_CASE_EXISTS. So the only way forward is the HR override (Confirm / Extend / Initiate separation). - The failed "Open review" gives the user no feedback.3 tests: 3 fail
tests
  • ✗ SHR-090 · the probation confirmation form lists the seven evaluation criteria
  • ✗ SHR-090 · each criterion takes a self rating, a rating and a comment
  • ✗ SHR-090 · the Reporting Manager, the Department Head and the HR Head each review the form
ISS-086
Medium
28 Sept 2026
Hiring managers and department heads get full Lifecycle admin controlsLifecycleRBACOpenConfirm whether this is intended. Managers usually see only their own reports' lifecycle items.Harsh Vardhan Mistry (hiring manager) and Kabir Anand (IT department head) see Edit template and Start onboarding and the full module.No e2e test
ISS-085
Low
28 Sept 2026
Duplicate reference data: seven identical "Review questions" sets, and "Intern" listed twice as an employee classLifecycle confirmationtransfersOpen — confirmed (via SHR-090)
e2e run 15 Oct 2026
3 tests: 3 fail
tests
  • ✗ SHR-090 · the probation confirmation form lists the seven evaluation criteria
  • ✗ SHR-090 · each criterion takes a self rating, a rating and a comment
  • ✗ SHR-090 · the Reporting Manager, the Department Head and the HR Head each review the form
ISS-084
Medium
28 Sept 2026
Transfer "impact checks" are free-text tags; a transfer can't change manager or positionLifecycle transfersOpenShow the computed impact, and allow a manager or position change with the move.The Request transfer dialog promises "Impact checks run automatically", but the impact section is a set of editable tags ("Assets to reassign", "Open approvals re-route"…). No computed preview is shown (org chart, approvers, leave policy, payroll). There's no field for a new manager or position.No e2e test
ISS-083
Low
28 Sept 2026
The "Laptop & access card issued" onboarding task isn't linked to the Assets moduleLifecycle onboardingAssetsOpenAn "Asset issue" task links to an asset assignment, or at least checks that the joiner holds an asset.The asset-issue task is a plain checkbox. Ticking it doesn't request, issue or check any asset on the register.No e2e test
ISS-082
Medium
28 Sept 2026
Converting a candidate to an employee skips the "New joiner onboarding" workflow and leaves the record incompleteRecruitmentLifecycleOpen — confirmed (via SHR-004)
e2e run 15 Oct 2026
Conversion fires the same hire workflow as manual hiring. It carries over department, manager, title and the verified documents.- No employee.hired workflow instance ran, so there's no joining letter and no manager notification. - The position is "IT Helpdesk Engineer" while the offer says "IT Support Associate (Demo)". - There's no department, manager or work email. - The pre-onboarding documents don't appear on the profile's Documents tab. - The Timeline reads "Joined the company in the company" and shows three phantom "Performance review" entries.1 test: 1 fail
tests
  • ✗ SHR-004 · an employee created from Organization gets the same pre-boarding checklist as a recruitment hire
ISS-081
Low
28 Sept 2026
Profile Actions → "Offboard…" is a dead endLifecycleEmployee profileWorks as expected (via SHR-062)
e2e run 15 Oct 2026
Open the Start exit dialog prefilled with this employee, or link to Lifecycle → Offboarding.It shows "Offboarding runs from Lifecycle." with no link and no dialog.1 test: 1 pass
tests
  • ✓ SHR-062 · an employee can submit their own resignation in the system
ISS-080
Medium
28 Sept 2026
"Nudge owner" (New joinees) and "Mark verified" (onboarding documents) show a message but call no APILifecycleOpenSend the nudge through notifications, and record the verification on the checklist item.Both buttons only show a toast. The page code has no server call behind them, so no reminder is sent and nothing is verified.No e2e test
ISS-079
Low
28 Sept 2026
The /lifecycle route (the "Lifecycle" breadcrumb) renders a blank pageLifecycleOpenRedirect to /lifecycle/onboarding or show an overview.The main area is empty. The sidebar link goes to /lifecycle/onboarding instead.No e2e test
ISS-078
High
28 Sept 2026
The inbox approval panel labels an offer approval as "Leave request" and shows no offer detailsT4 Offer ManagementInboxOpen — confirmed (via SHR-060)
e2e run 15 Oct 2026
Show the offer summary (candidate, role, CTC if permitted, joining date, offer code) with a link to the candidate profile, and label it "Offer approval". Show the due date once, formatted.The side panel says "Approval — Leave request". It shows only Requester, "Request: Approval", "Details: Kavya Raghunathan · at approval" and two due dates (one as a raw ISO timestamp). There's no candidate, role, CTC, joining date or link to the offer, so the approver can't review what they are approving, and it looks like a leave request.2 tests: 2 fail
tests
  • ✗ SHR-060 · the HR Head's approval panel shows role, department, entity, CTC and date of joining
  • ✗ SHR-060 · the offer approval shows role, department, entity, CTC and date of joining
ISS-080
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesrecruitment-offerAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-079
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesrecruitment-hiringAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-077
Low
28 Sept 2026
"Convert to employee" sometimes doesn't open when clicked right after the last checklist item is tickedT4 Pre-onboardingOpenKeep the button disabled until the refresh settles, or keep it stable so the first click registers.No dialog opened (the button re-renders while the checklist refreshes), so a second click was needed.No e2e test
ISS-076
Medium
28 Sept 2026
Cancelling a candidate's pre-onboarding silently rejects their applicationT4 Pre-onboardingOpenThe cancel dialog should say that it also cancels the offer and rejects the application. Better, let HR choose between returning the candidate to the offer stage and rejecting them.The offer is cancelled too, and the application becomes rejected, a terminal state. Moving it back returns 409 APPLICATION_TERMINAL (allowed: []). The cancel toast only says "Pre-onboarding cancelled", and the candidate now faces a 180-day reapply cooldown.No e2e test
ISS-078
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesrecruitment-offerAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-077
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesrecruitment-hiringAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-076
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesrecruitment-hiringAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-075
Low
28 Sept 2026
Posts and requisitions can't be closed from their obvious REST routes; only /transition worksT3 RecruitmentOpenDocument the transition routes, and give interviews a GET-by-id like the other recruitment records.POST /posts/{id}/close returns 404. The client uses POST /posts/{id}/transition {to:'closed', rowVersion} and POST /requisitions/{id}/transition {to:'cancelled', reason, rowVersion}. GET /interviews/{id} does not exist, so an interview's rowVersion is only available from GET /interviews?applicationId=.No e2e test
ISS-074
Medium
28 Sept 2026
Withdrawing an application leaves its interviews scheduled, so the panel stays blockedT3 Recruitment pipelineOpenWithdrawing or rejecting an application cancels its open interviews and notifies the panel, or at least says in the withdraw dialog that interviews are still booked.The withdrawn application's interview stays scheduled. The new booking fails with "Panelist conflicts — Already interviewing (Hiring manager round)" (PANELIST_CONFLICTS, 409). The panel keeps the calendar hold for a candidate who has left.No e2e test
ISS-073
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesrecruitment-hiringAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-072
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesrecruitment-hiringAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-071
Auto
28 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesrecruitment-hiringAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-070
High
28 Sept 2026
Offers raised by the Company Super Admin get stuck: the approval goes to an unresolved "primary manager"T4 Offer ManagementF6 WorkflowOpenWhen the relationship can't be resolved, fall back to a role (e.g. HR Head) or block submission with a clear message. The workflow list should flag instances whose tasks have no assignee.The Offer Approval workflow opens one task with assignedVia: "relationship:primary_manager (unresolved)", assignedUserId: null, assignedRoleId: null. Nobody sees it in their inbox (checked the CEO, the IT department head and the CTO). The offer shows "pending approval" indefinitely, until escalation at the 7-day SLA, if that resolves at all.No e2e test
ISS-069
Low
28 Sept 2026
"Propose to candidate" leaves the scheduling dialog open with no confirmationT3 Pipeline & InterviewsOpenClose the dialog and confirm "Slots sent to the candidate".POST /talent/recruitment/interviews succeeds (the profile later shows the round with "Book …" buttons), but the dialog stays open with the form filled in and no toast. It's easy to click again and create a duplicate proposal.No e2e test
ISS-068
Low
28 Sept 2026
Override approval is offered to the requester, then refused by segregation of dutiesT1 RequisitionsF6 WorkflowOpenDon't offer the override to the requester (or explain up front that the requester can't approve their own request).The panel invites the admin to decide "for them — the override is audited", but the request fails with 403 "You raised this request — segregation of duties requires a different approver to decide it."No e2e test
ISS-067
Low
28 Sept 2026
Requisition checklist picker lists "Pre-onboarding Default" and "Pre-onboarding default"T1 RequisitionsOpenUnique names (or the template's version/owner shown).Options: Company default, Pre-onboarding Default, Employee onboarding, Pre-onboarding default, + New checklist… Two near-identical names, and nothing to tell them apart.No e2e test
ISS-066
High
28 Sept 2026
Department heads get a policy-acknowledgement modal they're not allowed to acknowledge, and the policy text has unfilled merge fieldsO8 PoliciesF2 RBACOpenEvery employee who is sent a policy can acknowledge it: either the built-in role includes the grant, or distribution skips people who can't. Merge fields resolve to the reader's details.A full-screen modal opens with "Attendance & Punctuality Policy · due 9 Oct 2026" and "You can read this now, but acknowledging needs the Acknowledgements grant. Ask your HR administrator to enable it". The only buttons are "I'll ask my administrator" and Close, and it comes back on each sign-in. The policy body shows raw placeholders: "Company Name", "I, Employee Name (Employee No. Employee Number, Department)…" (same root cause as ISS-036).No e2e test
ISS-065
High
28 Sept 2026
Public careers site is unreachable (Cloudflare 522)T2 SourcingCareers siteOpenThe careers page loads, lists live postings and accepts applications.Cloudflare "Error 522 · Connection timed out". The host is reachable through Cloudflare but the origin never answers. Candidates can't see jobs or apply, although the "IT Helpdesk Engineer" posting is marked Live.No e2e test
ISS-064
Low
28 Sept 2026
Requisition approval summary lists an approver twiceT1 RequisitionsOpenEach eligible approver listed once, and the count matching."HR approval · any one of 3 — Aarav Krishnamurthy · not needed, Vikram Raghavan · not needed, Kavya Raghunathan · approved, Aarav Krishnamurthy · not needed". Four names for "any one of 3", with Aarav twice.No e2e test
ISS-063
Low
27 Sept 2026
Workflow approver picker offers archived roles and a duplicate "Department head"F6 WorkflowOpenArchived roles aren't offered, and relationship-based approvers are grouped/labelled separately from company roles.The list includes "Demo – Leave Checker", a role that was deleted (archived) under Settings → Roles and is hidden there. It shows both "Department head" (relationship) and "Department Head" (company role) with no hint of the difference.No e2e test
ISS-063
Auto
27 Sept 2026
[auto] Server error 500 on GET /api/company/documents/drive/grantee-optionsdocumentsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/documents/drive/grantee-optionsNo e2e test
ISS-062
Medium
27 Sept 2026
Starring a folder fails: "Validation error — Unrecognized key: starred"F12 DocumentsOpenStar uses the stars endpoint, and the item appears under Starred.Toast "Validation error · Unrecognized key: "starred"". The folder isn't starred. It's the same pattern as ISS-019: the UI sends a field the API schema rejects, while the API has a separate POST /documents/drive/stars endpoint.No e2e test
ISS-062
Auto
27 Sept 2026
[auto] Server error 500 on GET /api/company/documents/drive/grantee-optionsdocumentsAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/documents/drive/grantee-optionsNo e2e test
ISS-061
High
27 Sept 2026
Document drive writes succeed but answer HTTP 500 (follow-up to ISS-060)F12 DocumentsOpenReturn success once the write has committed, and fix whatever post-commit step throws (thumbnailing, audit, usage recalculation).No e2e test
ISS-060
High
27 Sept 2026
Document upload fails with HTTP 500, and the UI shows nothingF12 DocumentsOpen — see ISS-061The file uploads and appears in the folder with its metadata. If it fails, the user sees why.POST /api/company/documents/drive/documents?workspaceId=…&fileName=…[&folderId=…] → 500 with an empty body (e.g. x-request-id 8e3de6bb-7ab6-4063-b8f8-6c2ad66e68ab). No toast, no error, no file. It's 100% reproducible for every type tried, all within the allowed formats and the 2 MB limit.No e2e test
ISS-059
High
27 Sept 2026
Clicking "Download" on a finished export shows raw JSON "Unauthenticated" instead of the fileF10 Import/ExportReportsOpenThe CSV downloads (e.g. a signed short-lived URL, or fetch-with-credentials then save), and the user stays in the app.The tab navigates away from the app to the export file URL, which renders {"code":"UNAUTHENTICATED","message":"Unauthenticated","requestId":"…"} on a blank page. No file is downloaded, and the user has to use Back to return. The session cookie lives on the API domain, and the link seems to be a plain navigation without the token/credentials the API expects.No e2e test
ISS-058
Medium
27 Sept 2026
Report CSV export fails intermittently with a database error, and the UI says nothingF10 Import/ExportReportsOpenExports succeed reliably. On failure the user sees a clear message and a retry, and SQL stays out of API error payloads.POST /api/company/search/employee/export → 202 queued; polling GET /api/company/search/exports/{id} stays queued for ~45s, then status: "failed" with error: "Failed query: select "role_id" …" (raw SQL again, as in ISS-049). The button changes from "Preparing…" back to "Export CSV" with no error or toast. Other attempts minutes apart succeeded in 10–30s ("Download (1)").No e2e test
ISS-057
Medium
27 Sept 2026
Custom field types missing: decimal, date-time, lookup/reference, file/attachmentF9 Custom FieldsOpenAlso decimal (if Number is integer-only), date-time, lookup/reference and file/attachment. Input masks are also listed in the BRD; only a regex "Format check" exists.Types offered: Text, Long text, Number, Currency, Percent, Date, Select, Multi-select, Checkbox, Email, Phone, URL.No e2e test
ISS-056
High
27 Sept 2026
Custom fields can only be created for the Company, not employees, locations, departments, groups or positionsF9 Custom FieldsOpenCustom fields definable on Companies, Locations, Departments, Groups, Positions and Employees.The page only manages "Company fields", and the New group dialog has no entity choice. The API does accept GET /api/company/custom-fields?entityType=employee|location|department|group|position (all empty), and the Groups create dialog even asks for entityType=group fields, but no screen lets an admin define them.No e2e test
ISS-055
Low
27 Sept 2026
Approval detail panel: wrong request type, and a raw timestampF7 NotificationsInboxOpenThe real request type and details (claim, amount, dates), and one formatted due date.The panel subtitle says "Leave request". "Request" and "Details" just repeat "Approval" / the requester's name. "Due" appears twice, "5 Oct, 12:00 pm" and a raw 2026-10-05T06:30:39.832Z.No e2e test
ISS-054
Medium
27 Sept 2026
Inbox "announcement review" item opens Home instead of the reviewF7 NotificationsInboxOpenOpens the announcement review with approve / request changes / reject.The app navigates to the company Home page. No review panel, and no Approve/Reject for the announcement.No e2e test
ISS-053
Low
27 Sept 2026
Inbox approval items are titled just "Approval"F7 NotificationsInboxOpenA descriptive title (e.g. "Expense claim ₹4,200 — Client visit, Pune") like the announcement item has.The two travel & expense items read "Approval · Travel & expense — Approval · Zoya Kirmani", with no amount, trip or claim title. The approver can't tell the two apart without opening each.No e2e test
ISS-052
Medium
27 Sept 2026
Approval counts disagree: sidebar/Home say 15, Inbox shows 3 openF7 NotificationsInboxOpen — see ISS-530One source of truth for pending approvals, so the badge, Home and Inbox agree, and anything counted is reachable from the Inbox.The sidebar Inbox badge shows 15 and the Home greeting says "15 approvals are waiting for you", but the Approvals inbox shows "Awaiting your decision 3" and the Open tab "3" (Overdue 0, Decided 7). Home's "Pending approvals" widget lists four items for Kavya Raghunathan that don't appear in the Inbox.No e2e test
ISS-051
Low
27 Sept 2026
Notification settings list "Approval reminder" and "Approval requested" twiceF7 NotificationsOpenOne row per topic, or clearly different names if they really are separate events.Two "Approval reminder" rows ("A task is still waiting on you, or its deadline is close." / "A pending approval is nearing its SLA.") and two "Approval requested" rows ("A request is waiting for your approval." / "A task is waiting for your decision."), each with its own In-app/Email/Slack switches. The user can't tell which one governs which messages.No e2e test
ISS-050
High
27 Sept 2026
"New approval chain" leaves a half-created, active workflow with no audience, and the dialog never closesF6 WorkflowOpenCreate chain completes (publish + audience) or rolls back, shows errors, and closes. Workflow definitions that never went live can be deleted.The UI runs POST /api/company/workflows (201, definition created, status active), PUT …/version/{id} (steps saved) and POST …/validate → {ok:true}, then stops. There's no publish call and no applicability/audience call, and the dialog stays open with the button idle and no error. The list gains a workflow "Starts on leave request submitted · no live version · never ran" with applicabilityRuleId: null (i.e. everyone). Clicking Create again creates another one. There's no Delete on these rows (only on some designs), and the API has no delete: only PATCH {status: active|paused}.No e2e test
ISS-049
High
27 Sept 2026
Workflow Operations shows raw SQL errors, and 25 events are dead-lettered (incl. expense claims)F6 WorkflowOpenShow a friendly error (keep technical detail in server logs). Fix the failing approver-resolution query for expense claims, and redrive the parked events.25 events are parked ("retries exhausted — needs a human"). Their "Last error" column prints full database queries to the admin, e.g. Failed query: select distinct on (ai."provider_subject") … from "core"."user_scope_role_assignment" a join "rbac_role" …, which exposes schema/table names. Affected events include expense_claim.submitted, so those submissions never started their approval workflow. The header also shows "Approvals pending 392 · 37 past due" and "Delivered (24h) 0".No e2e test
ISS-048
Low
27 Sept 2026
Audit entries for company roles are typed "Platform" and name the role by its internal idF5 AuditOpenType Company, the role's display name in the activity text, and consistent severities.Creating or deleting a company role logs "Created role" (no name) and "Deleted demo leave reviewer 82628593" (the slug plus company id), with Type Platform, although it's a company-tier role. Deleting a delegation is severity Critical, while creating one is Info.No e2e test
ISS-047
High
27 Sept 2026
Organization changes are not written to the audit logF5 AuditOpenCompany and org entities audited for all create/update/delete/status changes, with field, before, after, actor and time."No matching entries". The log only holds access events (sign-ins, "Viewed company"), roles and permissions, delegations, employees and assets. None of the create/update/delete/status changes on org structures, calendars, policies, announcements or agreements are audited.No e2e test
ISS-046
Medium
27 Sept 2026
Company profile can't be reached from the app, and "New company" does nothingF4 Company ManagementOpenA visible entry point to the company profile (e.g. Settings → Company, or the company name in the sidebar header). "New company" hidden for roles that can't create companies, or explaining why not.The company profile page (/company/{id}/profile: legal details, registrations, modules, additional fields) exists, but nothing links to it. Not the sidebar, the "Company" breadcrumb (which goes to Home), the account menu, Settings, or the ⌘K search ("company" finds no profile). Separately, both the ⌘K search and the header "+ New" menu offer "New company", which does nothing when chosen by the Company Super Admin (the page stays on Home, with no dialog and no message).No e2e test
ISS-045
Medium
27 Sept 2026
Impersonation ("log in as user") isn't in the productF2 RBACOpenAn audited, view-only "login as user" for authorised support roles, with a flow to create the impersonation authorisation.No e2e test
ISS-046
Auto
27 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesidentityAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-045
Auto
27 Sept 2026
[auto] Server error 503 on GET /api/me/identitiesidentityAuto-loggedGET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/identitiesNo e2e test
ISS-044
Medium
27 Sept 2026
Company profile shows 0 employees and "0 of 0" modulesF4 Company ManagementOpenReal employee and module counts, and the Modules section listing what's switched on.The header cards read "Employees 0 on the roster" (the company has 24 employees, as the Home dashboard shows) and "Modules enabled 0 of 0 in the catalog", although Leave, Attendance, Recruitment and others are in use.No e2e test
ISS-043
Low
27 Sept 2026
Roles show more permissions than exist ("158 of 137 permissions")F2 RBACOpenThe count never exceeds the total, and both come from the same permission catalogue.Company Super Admin "158 of 137 permissions", Executive "147 of 137", HR Head "153 of 137". The granted count is higher than the catalogue total, so either the total or the count is wrong (e.g. counting per-scope grants or retired permissions).No e2e test
ISS-042
Low
27 Sept 2026
Agreements status filter has no "Draft" optionO10 AgreementsOpenA "Draft" option (and "Pending acknowledgement" if it's a separate state).The Status filter offers All statuses / Active / Expiring soon / Expired / Terminated. Draft agreements (shown with a "Draft" status in the table) can't be filtered.No e2e test
ISS-041
Low
27 Sept 2026
Single-key shortcuts fire while a dropdown is openGlobalseen on AgreementsOpenGlobal shortcuts are suppressed while a menu, select or text field has focus, and type-ahead works in selects.The keys go to the global shortcuts instead: "n" opens the Notifications panel on top of the open dropdown, and the option isn't selected.No e2e test
ISS-040
Medium
27 Sept 2026
Bond tracking uses the agreement's validity, not the bond period enteredO10 AgreementsOpenThe bond total is the bond period (12 months) from the start date, independent of the agreement's validity or renewals.API bondTerms.months = 12 but bondMonthsTotal = 18, and Bond tracking shows "0 of 18 months · 18 months remaining". Before the renewal it showed the validity span too, not 12.No e2e test
ISS-039
High
27 Sept 2026
"Renew +12 mo" on a draft agreement makes it Active without publishingO10 AgreementsOpenRenew isn't offered on drafts, or it only changes the dates and leaves the status as Draft until published.The agreement switches to Active ("Active agreements 1", "Service bonds active 1"). Acknowledgement stays "Not requested", so it was never sent to or acknowledged by the employee. validTo also moves 12 months on from the draft's date.No e2e test
ISS-038
Low
27 Sept 2026
A draft agreement can't be deleted from the UIO10 AgreementsOpenDelete for drafts that were never published.The draft's ⋯ menu offers View / Publish / Edit / Renew +12 mo / Terminate. There's no Delete, although DELETE /api/company/agreements/{id} works on drafts (204). A draft created for the wrong person can only be "terminated", which leaves a record on that employee.No e2e test
ISS-037
Low
27 Sept 2026
Draft agreements show "Signed on" with today's dateO10 AgreementsOpen"Created on" for drafts, and "Signed on" only once acknowledged/signed.The View panel of a never-published draft shows "SIGNED ON 27 Sep 2026" next to "STATUS Draft · ACKNOWLEDGEMENT Not requested".No e2e test
ISS-036
High
27 Sept 2026
Agreement merge fields show their labels instead of the employee's and company's detailsO10 AgreementsOpenMerge fields are resolved per employee copy when the agreement is generated (BRD O10: agreements generated via the Template Engine).The document reads "This Non-Disclosure Agreement is made between Company legal name (the "Company") and Employee (the "Recipient")." The fields aren't filled with "OpsMaven Services Pvt. Ltd." and "Asha Rao".No e2e test
ISS-035
Medium
27 Sept 2026
"Pin to top of feed" is silently dropped on scheduled announcementsO9 AnnouncementsOpenThe pin choice is kept and applied when the post goes live, or the switch is disabled with an explanation while a schedule is set.Picking a schedule date flips the switch back off. Even with Pin turned on after the date, the request goes out with "pinned": false, and the scheduled post is saved unpinned. No message says scheduled posts can't be pinned.No e2e test
ISS-034
Medium
27 Sept 2026
Announcement templates load raw {{ placeholders }} and the picker resetsO9 AnnouncementsOpenPrompt for the template's variables (or show them as highlighted fields), block publishing while tokens remain, and keep the chosen template shown in the picker.The title becomes {{ headline }} and the message {{ opening_paragraph }} / {{ detail_paragraph }} / Thank you for everything you do. There's no prompt to fill the variables, the toast reads "Loaded from template — {{ headline }}", and the preview shows the raw tokens too. The template picker then snaps back to "Blank announcement". Nothing stops the author from publishing with the tokens still in.No e2e test
ISS-033
Low
27 Sept 2026
Policy audience preview ignores quick filtersO8 Policy LibraryOpenThe preview reflects the filters, as the group condition builder already does."Who this reaches" keeps showing all 24 people, with the note "Quick filters are applied when this publishes — the people below are everyone before those filters". The admin can't see who the policy will actually reach before publishing.No e2e test
ISS-032
Medium
27 Sept 2026
Policy "Source template" lists letters and agreements, not just policy templatesO8 Policy LibraryOpenOnly Policies & Communications templates are offered.The list includes Recruitment · Offer Letter, Appointment Letter, Regret Letter (and its copy), Lifecycle · Joining/Relieving/Transfer letters, Employment Agreement and Non-Disclosure Agreement, next to the real policies. The help text right below says "Only 'Policies & Communications' templates can be used."No e2e test
ISS-031
Medium
27 Sept 2026
Policy distribution offers only Manual and ScheduledO8 Policy LibraryOpenAlso automatic (event-triggered), e.g. on joining or transfer, and bulk distribution.The Distribution picker lists "Manual — HR sends it" and "Scheduled — on a set date" only.No e2e test
ISS-030
Medium
27 Sept 2026
A retired policy's name can never be reused (code conflict with no way around it)O8 Policy LibraryOpenEither a Code field on the form (as Locations/Positions have), a unique code auto-generated with a suffix, or retired policies releasing their code.409 POLICY_CODE_CONFLICT — "Policy code is already in use". The retired policy keeps the code, PATCH rejects code ("Unrecognized key"), and the create form offers no Code field. The only workaround is a different name.No e2e test
ISS-029
Medium
27 Sept 2026
Two holiday calendars can be created for the same location and yearO7 Calendar & HolidaysOpenThe second create is refused ("A calendar for this location and year already exists"), as the dialog text promises ("One calendar per year and scope").Both succeed (POST /api/company/organization/calendars → 201 twice). The Calendar picker then lists "Location · X" twice, and it's unclear which one drives leave and attendance for people at that location.No e2e test
ISS-028
Low
27 Sept 2026
Holiday calendar "Applies to" offers inactive locationsO7 Calendar & HolidaysOpenOnly active locations, or inactive ones marked as such.The options include "Hyderabad Office", which is inactive under Organization → Locations, next to the active locations.No e2e test
ISS-027
Low
27 Sept 2026
Chart options menu stays open after choosing "Full screen"O6 Org ChartOpenThe menu closes once an action is picked, as it does for Fit to view.The chart goes full screen, but the options popover stays open on top of it, and it now reads "Exit full screen".No e2e test
ISS-026
Medium
27 Sept 2026
Org chart: functional view, PDF export and dotted-line managers not foundO6 Org Chart & HierarchyOpenConfirm whether these are built elsewhere; otherwise update the BRD checkboxes.No e2e test
ISS-025
Low
27 Sept 2026
Replacing a group's members with an empty list leaves rule-matched members in placeO5 GroupsOpenreplace sets the exact member list regardless of origin. Switching to hand-picked either clears rule members or asks whether to keep them.The replace returns OK, but the two rule-matched members (origin:"rule") stay. After retiring, they can't be removed (409 GROUPS_INACTIVE). Switching a group from condition to hand-picked also keeps the old rule matches without saying so.No e2e test
ISS-024
High
27 Sept 2026
Follow-up to ISS-019: the backend can retire groups, but the UI calls the wrong endpointO5 GroupsOpenNo e2e test
ISS-023
Low
27 Sept 2026
Groups: the same idea has three names each for "condition" and "by hand"O5 GroupsOpenOne term for each, used everywhere.Rule-based membership is called "By condition" (create/edit tabs), "Condition" (Members from column) and "By rule" (membership filter). Hand-picked membership is "Added by hand" (tab), "By hand" (column) and "Picked by hand" (filter).No e2e test
ISS-022
Low
27 Sept 2026
Group condition picker offers inactive departmentsO5 GroupsOpenOnly active departments are offered, or inactive ones are marked and listed separately, as the other department pickers do.The list includes inactive departments and teams (e.g. deactivated "Demo – Probe Dept"), mixed in with active ones and not marked as inactive.No e2e test
ISS-021
Low
27 Sept 2026
Accessibility: "Pin __actions to the left" label on the Groups tableO5 Groupslikely the shared data tableOpenThe actions column is not pinnable, or has a readable label ("Pin Actions to the left").The actions column's pin button has aria-label="Pin __actions to the left", which exposes the internal column id to screen readers.No e2e test
ISS-020
Low
27 Sept 2026
Group "Manage people" dialog shows the Locations help textO5 GroupsOpenGroup-specific text, e.g. "People can be in many groups. Adding them here doesn't remove them from any other group."The subtitle reads "Somebody can work out of more than one location, so placing them here does not take them away from anywhere else — or change the jurisdiction they belong to." That's the Locations copy.No e2e test
ISS-019
High
27 Sept 2026
Retiring a group always fails ("Unrecognized key: status")O5 GroupsOpenRetire works: either the PATCH schema accepts status, or the UI calls a dedicated retire endpoint.The frontend sends PATCH /api/company/organization/groups/{id} with {"status":"inactive"}. The backend rejects it with 400 VALIDATION_ERROR — Unrecognized key: "status", and the dialog shows "Could not change it — Unrecognized key: "status"". The API has no other retire/delete endpoint, so no group can be retired or removed.No e2e test
ISS-018
Low
27 Sept 2026
Notifications: "Your 0-day leave request was approved"LeaveNotifications › outside Organization; seen in the admin's notification feedOpenThe admin feed has many notifications reading "Your 0-day leave request was approved." (e.g. 2026-09-26 16:36:56Z, 16:36:33Z, 16:35:18Z). Either a zero-day request was allowed through, or the day count in the message template is wrong. Not investigated further, since it's outside the walkthrough scope.No e2e test
ISS-017
Low
27 Sept 2026
Copy: "1 of 12 position" when a position branch is focusedO4 PositionsOpen"Show only this branch" on a position shows the count "1 of 12 position". Same pluralisation bug as ISS-009 on Departments, so it's probably a shared component.No e2e test
ISS-016
Low
27 Sept 2026
Positions: filled count above sanctioned headcount isn't flaggedO4 PositionsOpenOver-filled positions are highlighted (and possibly reported), since sanctioned headcount is what the job is funded for.Several positions show Filled 4 / 1, 5 / 1, 3 / 1 (Admin Executive, IT Helpdesk Engineer, Compliance Officer, Onboarding SPOC) with Openings "None" and no over-headcount warning or badge.No e2e test
ISS-015
Medium
27 Sept 2026
Levels and grades can't be deleted or deactivatedO4 Positions, Grades & LevelsOpenDeactivate (hidden from pickers, kept for history) at minimum, and delete while unused.The only action is Edit. The API has create/patch only for position-levels and grades (no DELETE, no deactivate). A level or grade added by mistake stays in every picker forever.No e2e test
ISS-014
Low
26 Sept 2026
Chart view ignores "Show only this branch"O3 DepartmentsOpenOne focus shared by Table, Cards and Chart, or the banner is hidden in Chart view.The banner still says "Focused on …", but the chart draws the whole company. The chart has its own separate focus ("Top of chart", set by clicking a node).No e2e test
ISS-013
Low
26 Sept 2026
"Show only this branch" is missing for departments that only have sub-departmentsO3 DepartmentsOpenAny department with children, departments or teams, can be focused as a branch. That's where it's most useful.Menu is Edit / Manage people… / Add team / Deactivate. "Show only this branch" only appears for departments that contain teams (e.g. Information Technology).No e2e test
ISS-012
Medium
26 Sept 2026
Teams can't be edited or deactivated from the UIO3 DepartmentsOpenTeams get the same ⋯ actions as departments (Edit, Manage people, Deactivate), e.g. as nested rows in Table view or a menu on the team node/card line.Teams don't appear as rows in the Table view. In Cards they're plain text under the department. In Chart, clicking a team node only focuses the chart (no menu, right-click or double-click action). So there's no way to edit or deactivate a team. Together with ISS-008, a department that has ever had a team can't be deactivated from the UI either.No e2e test
ISS-011
Low
26 Sept 2026
Department chart doesn't fit the tree on first openO3 DepartmentsChart viewOpenThe chart opens fitted to the tree.At 1920×1080 the first and last departments are cut off at the left and right edges. The user has to press "fit view" or pan.No e2e test
ISS-010
Low
26 Sept 2026
Departments and teams can't be deleted, only deactivatedO3 DepartmentsOpenHard delete allowed while a department has never had people, positions or children. Otherwise deactivate only.The API has create/patch/reparent/deactivate/reactivate and no delete (DELETE /api/company/organization/departments/{id} → 404 route not found). A department created by mistake (typo, test data) stays forever under the Inactive filter and keeps its code reserved.No e2e test
ISS-009
Low
26 Sept 2026
Copy: pluralisation in department screensO3 DepartmentsOpenThe deactivate dialog says "1 people are in it" (should be "1 person is in it"). With "Show only this branch" the count reads "1 of 10 department" (should be "1 of 10 departments").No e2e test
ISS-008
Medium
26 Sept 2026
Deactivating a department that still has an active team fails with a generic errorO3 DepartmentsOpenThe confirm dialog says up front that active teams/sub-departments must be deactivated or moved first, and offers a way to do it. Or the Deactivate button is disabled with that reason.The dialog only warns about people and active positions. On confirm the server returns 409 DEPARTMENT_HAS_ACTIVE_CHILDREN, shown as the toast "Could not save — Deactivate or reparent active child departments first". The dialog stays open.No e2e test
ISS-007
High
25 Sept 2026
Row actions (⋯) stop working after searching, clearing the search, then creating a locationO2 LocationsOpenThe row menu opens (Edit / Manage people… / Deactivate).Nothing happens on any row, including rows that existed before. Toggling Cards/Table doesn't recover it. Playwright shows the "Actions for …" button resolving to a node that is no longer attached to the document (document.contains(el) === false), which suggests the list keeps a stale row tree after the search/filter state is reset and the query refetches. The same steps without the search work fine.No e2e test
ISS-006
Medium
25 Sept 2026
People can't be removed from an inactive location, so it can never be deletedO2 LocationsOpenRemoving people from an inactive location is allowed. It is exactly the clean-up the confirm dialog tells you to do.409 LOCATION_INACTIVE — "An inactive location cannot take placements", which applies the rule for adding to removals too. DELETE then fails with 409 LOCATION_IN_USE (employeeLocations: 1). The only way out is Reactivate → remove people → Deactivate/Delete.No e2e test
ISS-005
Low
25 Sept 2026
Session saved via "Keep me signed in" doesn't survive a new browser contextAuthOpenThe persisted session is reused until it expires.Redirected to /sign-in. Cookies are __Secure-better-auth.session_token / session_data on the workers.dev API domain.No e2e test
ISS-004
Medium
25 Sept 2026
Sign-in page on QA exposes a shared-password hintAuthOpenDev-only banner hidden outside local builds.Banner "Local environment — every login shares the password 1234" with a login picker. It's shown on a publicly reachable QA URL, and the hint doesn't match the actual QA credentials.No e2e test
ISS-003
Low
25 Sept 2026
Company Super Admin cannot view the jurisdiction catalogO1 JurisdictionsOpenJurisdictions are platform-managed, but a company admin can at least see which jurisdictions the company operates in, and manage them (add/remove) in one place./platform/... redirects to company home. /organization/jurisdictions renders the breadcrumb "Organization › Jurisdictions" with a bare "Not Found" body. The only way to add a company jurisdiction is inside the New location dialog. There is no UI to see or remove company jurisdictions, even though the API supports removal (DELETE /api/company/location/jurisdictions/{id}).No e2e test
ISS-002
Low
25 Sept 2026
New US location defaults to America/New_York regardless of jurisdictionO2 LocationsO1 JurisdictionsOpenTimezone follows the jurisdiction (Texas → America/Chicago), or the user is prompted to choose one.Locale summary shows USD · America/New_York · MM/dd/yyyy · en-US for every US jurisdiction. It can only be corrected through "Change".No e2e test
ISS-001
Medium
25 Sept 2026
Deleted location's code stays reservedO2 Locationsfound while recording O1 JurisdictionsOpenThe code is free again (or the auto-generated code gets a suffix).Toast "Could not save — Location code is already in use". The user can't see which location holds the code, because it no longer exists.No e2e test

Full entries

ISS-420 · [auto] Server error 500 on GET /api/me/notifications/unread-count

ISS-419 · [auto] Server error 500 on GET /api/me/policies/my

ISS-418 · [auto] Server error 500 on GET /api/company/audit-events

ISS-417 · [auto] Server error 500 on GET /api/me/policies/my

ISS-416 · [auto] Server error 500 on GET /api/me/company-context

ISS-415 · [auto] Server error 500 on GET /api/company/audit-events

ISS-414 · [auto] Server error 500 on GET /api/me/policies/my

ISS-413 · [auto] Server error 500 on GET /api/me/policies/my

ISS-412 · [auto] Server error 500 on GET /api/me/company-context

ISS-411 · [auto] Server error 500 on GET /api/me/policies/my

ISS-410 · [auto] Server error 500 on GET /api/company/audit-events

ISS-409 · [auto] Server error 500 on GET /api/company/audit-events

ISS-408 · [auto] Server error 500 on GET /api/me/policies/my

ISS-407 · [auto] Server error 500 on GET /api/me/company-context

ISS-406 · [auto] Server error 500 on GET /api/me/assets/my-things

ISS-405 · [auto] Server error 500 on GET /api/me/notifications/unread-count

ISS-404 · [auto] Server error 500 on GET /api/me/policies/my

ISS-403 · [auto] Server error 500 on GET /api/company/audit-events

ISS-402 · [auto] Server error 500 on GET /api/me/company-context

ISS-401 · [auto] Server error 500 on GET /api/me/policies/my

ISS-400 · [auto] Server error 500 on GET /api/company/audit-events

ISS-399 · [auto] Server error 500 on GET /api/me/company-context

ISS-377 · Surveys: the round's "responded" count stays at 0 after people submit

ISS-398 · [auto] Server error 500 on GET /api/company/audit-events

ISS-397 · [auto] Server error 500 on GET /api/me/policies/my

ISS-376 · Surveys: a forced-anonymous survey accepts named respondent links

ISS-375 · Surveys: ISS-159 and ISS-160 still reproduce (2 Oct), and form-runs ignores its campaign filter

ISS-396 · [auto] Server error 500 on GET /api/me/policies/my

ISS-395 · [auto] Server error 500 on GET /api/company/audit-events

ISS-394 · [auto] Server error 500 on GET /api/company/audit-events

ISS-393 · [auto] Server error 500 on GET /api/me/policies/my

ISS-374 · Grievance cases are blocked by the same disciplinary-record permission (follow-up to ISS-317)

ISS-392 · [auto] Server error 500 on GET /api/me/policies/my

ISS-391 · [auto] Server error 500 on GET /api/me/company-context

ISS-390 · [auto] Server error 500 on GET /api/company/audit-events

ISS-389 · [auto] Server error 500 on GET /api/me/policies/my

ISS-388 · [auto] Server error 500 on GET /api/me/company-context

ISS-387 · [auto] Server error 500 on GET /api/company/audit-events

ISS-386 · [auto] Server error 500 on GET /api/company/audit-events

ISS-385 · [auto] Server error 500 on GET /api/me/company-context

ISS-384 · [auto] Server error 500 on GET /api/me/policies/my

ISS-383 · [auto] Server error 500 on GET /api/company/audit-events

ISS-382 · [auto] Server error 500 on GET /api/me/leave/team-calendar

ISS-381 · [auto] Server error 500 on GET /api/me/notifications/unread-count

ISS-380 · [auto] Server error 500 on GET /api/me/organization/announcements

ISS-379 · [auto] Server error 500 on GET /api/me/people/moments

ISS-378 · [auto] Server error 500 on GET /api/me/attendance/my

ISS-377 · [auto] Server error 500 on GET /api/company/audit-events

ISS-376 · [auto] Server error 500 on GET /api/me/policies/my

ISS-375 · [auto] Server error 500 on GET /api/me/company-context

ISS-374 · [auto] Server error 500 on GET /api/company/audit-events

ISS-373 · Editing a live review cycle opens the wizard, then silently refuses to save

ISS-372 · [auto] Server error 500 on GET /api/company/audit-events

ISS-371 · [auto] Server error 500 on GET /api/me/perf/my-reviews/mine

ISS-370 · [auto] Server error 500 on GET /api/me/company-context

ISS-369 · [auto] Server error 500 on GET /api/company/audit-events

ISS-368 · [auto] Server error 500 on GET /api/company/audit-events

ISS-367 · [auto] Server error 500 on GET /api/me/policies/my

ISS-366 · [auto] Server error 500 on GET /api/me/policies/my

ISS-365 · [auto] Server error 500 on GET /api/company/audit-events

ISS-364 · [auto] Server error 500 on GET /api/me/company-context

ISS-363 · [auto] Server error 500 on GET /api/me/company-context

ISS-362 · [auto] Server error 500 on GET /api/me/policies/my

ISS-361 · [auto] Server error 500 on GET /api/company/audit-events

ISS-360 · [auto] Server error 500 on GET /api/me/policies/my

ISS-359 · [auto] Server error 500 on GET /api/company/audit-events

ISS-358 · [auto] Server error 500 on GET /api/company/audit-events

ISS-357 · [auto] Server error 500 on GET /api/me/company-context

ISS-356 · [auto] Server error 500 on GET /api/company/audit-events

ISS-355 · [auto] Server error 500 on GET /api/me/policies/my

ISS-354 · [auto] Server error 500 on GET /api/me/organization/announcements

ISS-320 · Leave balances don't add up: "left" exceeds what was granted minus what was taken

ISS-321 · Duplicate, overlapping approved leave exists although new overlaps are refused

ISS-353 · [auto] Server error 500 on GET /api/me/leave/team-calendar

ISS-352 · [auto] Server error 500 on GET /api/me/inbox

ISS-351 · [auto] Server error 500 on GET /api/me/policies/my

ISS-350 · [auto] Server error 500 on GET /api/me/company-context

ISS-349 · [auto] Server error 500 on GET /api/company/audit-events

ISS-348 · [auto] Server error 500 on GET /api/me/policies/my

ISS-319 · Employee record's Acknowledgements tab is empty although the employee holds five receipts

ISS-347 · [auto] Server error 500 on GET /api/company/audit-events

ISS-346 · [auto] Server error 500 on GET /api/me/policies/my

ISS-318 · Manage people offers an employee the server then refuses ("unavailable in this Company")

ISS-345 · [auto] Server error 500 on GET /api/company/audit-events

ISS-344 · [auto] Server error 500 on GET /api/me/company-context

ISS-343 · [auto] Server error 500 on GET /api/me/policies/my

ISS-342 · [auto] Server error 500 on GET /api/company/audit-events

ISS-341 · [auto] Server error 500 on GET /api/me/policies/my

ISS-340 · [auto] Server error 500 on GET /api/company/audit-events

ISS-339 · [auto] Server error 500 on GET /api/me/policies/my

ISS-338 · [auto] Server error 500 on GET /api/company/audit-events

ISS-337 · [auto] Server error 500 on GET /api/me/company-context

ISS-336 · [auto] Server error 500 on GET /api/company/audit-events

ISS-335 · [auto] Server error 500 on GET /api/me/policies/my

ISS-334 · [auto] Server error 500 on GET /api/company/audit-events

ISS-333 · [auto] Server error 500 on GET /api/me/policies/my

ISS-332 · [auto] Server error 500 on GET /api/company/audit-events

ISS-331 · [auto] Server error 500 on GET /api/me/company-context

ISS-330 · [auto] Server error 500 on GET /api/me/policies/my

ISS-329 · [auto] Server error 500 on GET /api/me/policies/my

ISS-317 · Nobody can open a disciplinary case — 403 "Visible disciplinary-record access is required"

ISS-328 · [auto] Server error 500 on GET /api/company/audit-events

ISS-327 · [auto] Server error 500 on GET /api/company/audit-events

ISS-315 · Confirmation: a nominated peer is never asked, and Nominate reports an error that didn't happen

ISS-316 · Confirming probation records a confirmation date before the hire date

ISS-326 · [auto] Server error 500 on GET /api/me/company-context

ISS-325 · [auto] Server error 500 on GET /api/me/policies/my

ISS-324 · [auto] Server error 500 on GET /api/company/audit-events

ISS-323 · [auto] Server error 500 on GET /api/company/audit-events

ISS-322 · [auto] Server error 500 on GET /api/me/policies/my

ISS-321 · [auto] Server error 500 on GET /api/company/audit-events

ISS-320 · [auto] Server error 500 on GET /api/me/company-context

ISS-319 · [auto] Server error 500 on GET /api/me/policies/my

ISS-318 · [auto] Server error 500 on GET /api/company/audit-events

ISS-317 · [auto] Server error 500 on GET /api/me/company-context

ISS-316 · [auto] Server error 500 on GET /api/me/policies/my

ISS-315 · [auto] Server error 500 on GET /api/company/audit-events

ISS-313 · [auto] Server error 500 on GET /api/company/audit-events

ISS-256 · Joiners started by the joiner workflow get an empty onboarding checklist

ISS-314 · Joiners started by the joiner workflow get an empty onboarding checklist (renumbered)

ISS-312 · [auto] Server error 500 on GET /api/me/company-context

ISS-311 · [auto] Server error 500 on GET /api/company/audit-events

ISS-310 · [auto] Server error 500 on GET /api/me/policies/my

ISS-309 · [auto] Server error 500 on GET /api/company/audit-events

ISS-308 · [auto] Server error 500 on GET /api/me/company-context

ISS-307 · [auto] Server error 500 on GET /api/me/policies/my

ISS-306 · [auto] Server error 500 on GET /api/company/audit-events

ISS-305 · [auto] Server error 500 on GET /api/me/leave/team-calendar

ISS-304 · [auto] Server error 500 on GET /api/me/people/moments

ISS-303 · [auto] Server error 500 on GET /api/me/leave/me

ISS-302 · [auto] Server error 500 on GET /api/me/leave/holidays

ISS-301 · [auto] Server error 500 on GET /api/me/organization/announcements

ISS-300 · [auto] Server error 500 on GET /api/me/inbox

ISS-299 · [auto] Server error 500 on GET /api/me/attendance/my

ISS-298 · [auto] Server error 500 on GET /api/me/notifications/unread-count

ISS-297 · [auto] Server error 500 on GET /api/me/policies/my

ISS-296 · [auto] Server error 500 on GET /api/me/company-context

ISS-295 · [auto] Server error 500 on GET /api/me/leave/my

ISS-294 · [auto] Server error 500 on GET /api/company/audit-events

ISS-293 · [auto] Server error 500 on GET /api/me/leave/holidays

ISS-292 · [auto] Server error 500 on GET /api/me/attendance/my

ISS-291 · [auto] Server error 500 on GET /api/me/organization/announcements

ISS-290 · [auto] Server error 500 on GET /api/me/policies/my

ISS-289 · [auto] Server error 500 on GET /api/me/policies/my

ISS-288 · [auto] Server error 500 on GET /api/me/policies/my

ISS-287 · [auto] Server error 500 on GET /api/company/audit-events

ISS-286 · [auto] Server error 500 on GET /api/me/policies/my

ISS-285 · [auto] Server error 500 on GET /api/me/leave/me

ISS-284 · [auto] Server error 500 on GET /api/company/audit-events

ISS-283 · [auto] Server error 500 on GET /api/me/company-context

ISS-282 · [auto] Server error 500 on GET /api/company/audit-events

ISS-281 · [auto] Server error 500 on GET /api/me/policies/my

ISS-280 · [auto] Server error 500 on GET /api/company/audit-events

ISS-279 · [auto] Server error 500 on GET /api/me/policies/my

ISS-278 · [auto] Server error 500 on GET /api/me/policies/my

ISS-277 · [auto] Server error 500 on GET /api/company/audit-events

ISS-276 · [auto] Server error 500 on GET /api/me/policies/my

ISS-275 · [auto] Server error 500 on GET /api/me/policies/my

ISS-274 · [auto] Server error 500 on GET /api/company/audit-events

ISS-273 · [auto] Server error 500 on GET /api/me/policies/my

ISS-272 · [auto] Server error 500 on GET /api/me/company-context

ISS-271 · [auto] Server error 500 on GET /api/company/audit-events

ISS-270 · [auto] Server error 500 on GET /api/me/policies/my

ISS-269 · [auto] Server error 500 on GET /api/me/company-context

ISS-268 · [auto] Server error 500 on GET /api/company/audit-events

ISS-267 · [auto] Server error 500 on GET /api/me/policies/my

ISS-266 · [auto] Server error 500 on GET /api/company/audit-events

ISS-265 · [auto] Server error 500 on GET /api/me/policies/my

ISS-264 · [auto] Server error 500 on GET /api/company/audit-events

ISS-263 · [auto] Server error 500 on GET /api/me/policies/my

ISS-262 · [auto] Server error 500 on GET /api/company/audit-events

ISS-261 · [auto] Server error 500 on GET /api/me/policies/my

ISS-260 · [auto] Server error 500 on GET /api/company/audit-events

ISS-259 · [auto] Server error 500 on GET /api/me/company-context

ISS-258 · [auto] Server error 500 on GET /api/company/audit-events

ISS-257 · [auto] Server error 500 on GET /api/me/policies/my

ISS-256 · [auto] Server error 500 on GET /api/company/audit-events

ISS-255 · A completed transfer card shows a raw department id

ISS-254 · Transfers: "Agree (JD shared)" never enables, so the dates can only be agreed by override

ISS-253 · A completed transfer shows the destination as its "From"

ISS-252 · Internal transfer: payroll, both timers, "Transfer effected", goals and the 90-day review run as empty steps

ISS-251 · Transfer letter names the transfer type instead of the destination, and keeps the old effective date

ISS-250 · Employees can't request a change to their record, so both profile-change workflows are unreachable

ISS-249 · A refused probation review still starts (and cancels) a workflow run

ISS-248 · Joiner: logistics and security emails, the final validation and the employee-link gate are skipped as empty steps

ISS-247 · Joiner readiness and Day-one checklists go to the wrong people

ISS-246 · Joiner: a document discrepancy can't be recorded, so "Offer void" never happens; declining the override strands the case

ISS-245 · Joiner email approvals show neither the joiner nor the draft

ISS-244 · One person can approve an offer alone: later HR and finance steps auto-approve when the same person is in their group

ISS-243 · Offer approval can't find the requisition's hiring manager, so every offer falls back to the HR admin

ISS-242 · Three recruitment approval workflows can never run: Job Post Publish, Stage Advance and Internal Placement

ISS-241 · A trip-linked claim drops the title the employee typed

ISS-240 · Expense claims against an approved trip still go to the manager: the workflow gets no claim details

ISS-239 · A decline by one approver in an "any one decides" group doesn't end the request; it stays open with the others

ISS-238 · Travel requests never reach the skip-level sign-off: the workflow gets no trip details, so every trip is treated as one leg

ISS-237 · No screen can request comp-off; "Use comp-off" only opens the leave form, and there are two comp-off leave types

ISS-236 · Overtime claim shows the worked hours 5½ hours late ("3:00 PM–5:00 AM" for a 09:30–23:30 day)

ISS-235 · "Could not send the correction — request timed out" although the correction was created

ISS-234 · The designer says Attendance Regularization starts "manually, no module", but the attendance correction form starts it

ISS-233 · Work From Home and Short Permission requests go through Annual Leave Approval; their own workflows never run, and neither has a screen

ISS-232 · Cancelling approved leave takes the days away again instead of giving them back; the Leave Cancellation workflow never runs

ISS-231 · The leave form promises loss of pay for Bereavement Leave, then the server refuses for insufficient balance

ISS-230 · Two branches of Annual Leave Approval can never run: the leave form blocks them first

ISS-229 · A leave request the policy accepts as loss of pay is rejected by the approval workflow for "insufficient balance"

ISS-228 · The leaver's letters are only emailed: My documents stays empty and My journey shows nothing open

ISS-227 · The Assets clearance lane still can't be cleared, even with nothing outstanding (ISS-090 again)

ISS-227 · [auto] Server error 500 on PATCH /api/company/people/lifecycle/exits/92509449-fa95-4806-8030-51da8fa51545/clearance/c3d18590-5648-492b-9a58-55f93b58fb9c

ISS-226 · Update to ISS-218: on the 30 Sep afternoon run, the Resignation workflow called the company's own "Clearance and settlement"

ISS-225 · Overriding a waiting workflow step from the Inbox always fails: it needs a reason but the panel has no comment box

ISS-224 · The designer summarises the Resignation steps wrongly

ISS-223 · Workflow checklist items can't be seen or ticked anywhere in the app

ISS-222 · The Inbox can't request changes, so every workflow's "Changes requested" branch is unreachable from the UI

ISS-221 · Resignation notifications leave out the employee's name

ISS-220 · A policy acknowledgement due in 9 days locks managers out of the whole app

ISS-219 · The Resignation workflow announces "Exit complete" while the exit is still in clearance

ISS-218 · The Resignation workflow calls the platform copy of "Clearance and settlement": its gates pass instantly and its approvals go to nobody

ISS-217 · Knowledge-transfer checklist and KT plan don't sync, and the fallback sign-off closes the checklist with required items open

ISS-216 · Withdrawn exits leave their knowledge-transfer plans active

ISS-215 · Every ticked checklist item re-opens the checklist's sign-off, so the approver gets one inbox item per tick

ISS-214 · "Changes requested" on a resignation approval silently ends the case

ISS-213 · After HR overrides the "Stay conversation recorded" step, the exit card still won't take a retention decision

ISS-212 · Cancelling one Resignation run withdraws the exit, while the other run keeps going

ISS-211 · Correction to ISS-210: every resignation still starts two Resignation runs (v2), and only the duplicate lacks the employee's name

ISS-210 · The Resignation workflow's first step always stalls: the trigger doesn't pass the employee's name, so the acknowledgement letter becomes a gap task for the HR Manager

ISS-209 · Security says two-factor adoption is "0 of 26 members" while Users lists 25 accounts

ISS-208 · Roles people still hold show an active Delete button

ISS-207 · "Delegate added" says new approvals will go to the delegate even when the delegation is scheduled for later

ISS-206 · Notification preferences are lost without warning when you leave the page before "Save preferences"

ISS-205 · Profile shows the role as "Hr Head 82628593", its internal key, instead of the role's display name

ISS-204 · [auto] Server error 500 on POST /api/company/delegations

ISS-202 · HR has no screen to read or answer feedback

ISS-201 · Sending feedback fails with a 500 even for a user who has Feedback access

ISS-200 · Employees and managers get the Feedback page but can't send anything (403), and the page gives no sign of it until they submit

ISS-203 · [auto] Uncaught page error: undefined

ISS-202 · [auto] Server error 500 on POST /api/me/perf/feedback-cases

ISS-201 · [auto] Server error 500 on POST /api/me/perf/feedback-cases

ISS-200 · [auto] Uncaught page error: undefined

ISS-199 · The manager's "Overall" rating is not part of the score, which the form doesn't explain

ISS-198 · "Closing next" on My reviews still lists deadlines of a cycle that has been released

ISS-197 · A cut-off can be extended for a stage the person has already finished

ISS-196 · "Close cycle" says 1 review is still open when both reviews are submitted and awaiting release

ISS-195 · Self-assessments and ratings are accepted before the review period starts and while the cycle is still in goal setting

ISS-194 · The "is any of" operator in the review audience builder only accepts one value

ISS-193 · A closed survey round can't be reopened, and Close has no confirmation, so one wrong click ends a live round for good

ISS-192 · [auto] Uncaught page error: undefined

ISS-191 · [auto] Server error 503 on GET /api/v1/templates/variables

ISS-190 · [auto] Server error 503 on GET /api/v1/templates/variables

ISS-189 · [auto] Server error 503 on GET /api/v1/templates/variables

ISS-188 · [auto] Server error 503 on GET /api/v1/templates/variables

ISS-187 · Performance dates and counters: mixed formats, stale "Closing next", and filter counts that don't change

ISS-186 · Every review cycle is labelled "Annual"

ISS-185 · Review banners and help text contradict the actual state

ISS-184 · HR's per-person page in a cycle shows only the goal sheet, and its "Employees" breadcrumb is Not Found

ISS-183 · Reporting Manager role has company-wide Performance admin (all cycles, every rating and comment)

ISS-182 · "Close cycle" closes a review cycle in one click, with no confirmation

ISS-181 · Feedback page: employees get 403 on their own submissions, but the page says "Nothing sent yet"

ISS-180 · 13 duplicate "Performance review · HR signoff" approvals for Kavya go to a manager and point at no review

ISS-179 · Employee profile → Performance tab shows the same unrelated review for everyone (?employeeId is ignored)

ISS-178 · Performance: after a partial release, 9 people are stuck in a "Released" cycle, still asked to self-assess but blocked

ISS-177 · Notification settings show all 93 topics to everyone, including candidate emails and engine alerts

ISS-176 · Test and probe workflows are visible to the company and offered in pickers; Campaigns lists duplicates and retired flows

ISS-175 · Platform SLA policies escalate to "placeholder hr head", "placeholder ceo" and "placeholder hr manager"

ISS-174 · The delegate picker leaves out Kavya Raghunathan and Aarav Krishnamurthy, but offers people who have never signed in

ISS-173 · Active sessions: 100 sessions all at 127.0.0.1, no "this device", and idle sessions are never ended

ISS-172 · Audit log "Type" filter only offers types from the rows already loaded

ISS-171 · Workflow designer: the cost-threshold branch opens as "Requested days is 999999", and Test run uses leave fields

ISS-170 · Roles: Company Super Admin card says "13 members", but its member list has 1

ISS-169 · "Invite user" defaults the role to Company Super Admin

ISS-168 · Settings → Users: the Status filter does nothing, and paging is broken

ISS-167 · HR Head sees Workflows and Roles in Settings but is denied them, and "Invite user" has an empty role list

ISS-166 · A Reporting Manager can't open any Settings page, not even Profile, Notifications, Delegation or Sign-in & security

ISS-165 · Form builder logic: condition picker shows internal keys ("answers.q_mugmmc6c1") instead of question text

ISS-164 · Surveys: Distribute → "Invitation email" lists every company email template (Termination letter, Offer released…)

ISS-163 · Surveys: anonymity wording differs between builder and Launch, and "Anonymous — no reminders possible" still offers reminders

ISS-162 · Surveys: Launch lets you pick an audience smaller than the minimum response count, so results can never unlock

ISS-161 · Form builder: "Insert variable" is always empty — GET /api/v1/templates/variables returns 503

ISS-160 · Surveys: invited employees can't find the survey anywhere in the app

ISS-159 · Surveys: launching a round made 3 invitation links per person (audience of 2 → "0 / 6 responded")

ISS-158 · Surveys: "Close" ends a live survey round in one click, with no confirmation

ISS-157 · A claim can't be tied to its trip, so the advance is never netted

ISS-156 · A claim with any line over its category limit can't be sent, and the reason is never shown

ISS-155 · An expense claim sent late evening in India fails ("cannot be dated in the future") and leaves an empty draft

ISS-156 · [auto] Uncaught page error: undefined

ISS-155 · [auto] Uncaught page error: undefined

ISS-154 · Asset receipt "Acknowledge" does nothing

ISS-154 · [auto] Uncaught page error: companyId is not defined

ISS-153 · Asset "Hand one over" only reserves the unit; the hand-over receipt vanishes once the asset is returned

ISS-152 · Employees can no longer request an asset: "This action needs view access to asset-requests"

ISS-151 · Copy mismatches in Assets

ISS-150 · Manager Harsh can open company-wide Expenses (all claims, File for a colleague) but not "My things"

ISS-149 · Finance employee (Arnav Deshmukh) has no finance access; the finance approver group is CEO/CTO/HR/admin

ISS-148 · Claim marked Approved (finance_approved) before any line has a finance decision

ISS-147 · Expense totals disagree across screens

ISS-146 · Expense claim that the manager approved still says "With your manager" / "Awaiting approval … This claim was approved"

ISS-145 · Employee profile → Assets says "No assets assigned" for someone who holds an asset

ISS-144 · Receipt titles keep the asset's old name

ISS-143 · Asset receipts for other people show up in every user's Inbox and Home, with an Acknowledge button

ISS-131 · A resignation now starts two "Resignation" workflow runs that wait on Harshit Bhalla, not the manager

ISS-142 · [auto] Server error 503 on GET /api/me/identities

ISS-141 · [auto] Server error 503 on GET /api/me/identities

ISS-130 · The KT plan counterpart sees the leaver as "Employee" instead of their name

ISS-140 · [auto] Server error 503 on GET /api/me/identities

ISS-129 · After a department transfer, the department headcount doesn't change and the position stays in the old department

ISS-139 · [auto] Server error 503 on GET /api/me/identities

ISS-138 · [auto] Uncaught page error: undefined

ISS-137 · [auto] Server error 503 on GET /api/me/identities

ISS-136 · [auto] Server error 503 on GET /api/me/identities

ISS-135 · [auto] Server error 503 on GET /api/me/identities

ISS-134 · [auto] Uncaught page error: undefined

ISS-133 · [auto] Server error 503 on GET /api/me/identities

ISS-132 · [auto] Uncaught page error: undefined

ISS-131 · [auto] Server error 503 on GET /api/me/identities

ISS-130 · [auto] Server error 503 on GET /api/me/identities

ISS-129 · [auto] Uncaught page error: undefined

ISS-128 · [auto] Server error 503 on GET /api/me/identities

ISS-127 · [auto] Uncaught page error: undefined

ISS-126 · [auto] Server error 503 on GET /api/me/identities

ISS-125 · [auto] Uncaught page error: undefined

ISS-124 · [auto] Server error 503 on GET /api/me/identities

ISS-123 · [auto] Uncaught page error: undefined

ISS-122 · [auto] Server error 503 on GET /api/me/identities

ISS-121 · [auto] Uncaught page error: undefined

ISS-120 · [auto] Uncaught page error: undefined

ISS-119 · [auto] Uncaught page error: undefined

ISS-118 · [auto] Uncaught page error: undefined

ISS-117 · [auto] Server error 503 on GET /api/me/identities

ISS-116 · [auto] Server error 503 on GET /api/me/identities

ISS-115 · Employee "People" directory shows only yourself

ISS-114 · Home approval counts don't match the Inbox

ISS-113 · Notification settings have no leave events

ISS-112 · Worked hours and overtime contradict each other on an HR-corrected day

ISS-111 · Employee profile → Timesheets has no dates

ISS-110 · A Reporting Manager sees company-wide Leave and Attendance admin, including HR-only pages

ISS-109 · Leave and attendance inbox items show internal step codes ("Mgr quick · … · at mgr quick")

ISS-108 · Comp-off wallet says "2 days to use" when the credits add up to 1.5

ISS-107 · Earned comp-off is shown as negative "taken"

ISS-106 · Leave policy entitlements are never credited ("Policies not applied."), so almost everyone has 0 days

ISS-105 · Approved leave doesn't show on the attendance calendar: those days read "No record"

ISS-101 · A fully approved transfer stays "In approval": generating the transfer letter fails with "Missing required fields"

ISS-104 · [auto] Server error 503 on GET /api/me/identities

ISS-100 · The HR approver group lists Aarav Krishnamurthy twice, so he gets duplicate approval tasks

ISS-103 · [auto] Server error 503 on GET /api/me/identities

ISS-102 · [auto] Server error 503 on GET /api/me/identities

ISS-101 · [auto] Server error 503 on GET /api/me/identities

ISS-100 · [auto] Server error 503 on GET /api/me/identities

ISS-099 · Ticking an onboarding task right after uploading its document fails with "Changed elsewhere"

ISS-098 · The probation-review auto case shows "Manager —" and the rehearsal confirm needed no confirmation step

ISS-097 · One resignation starts two approval workflows, and one of them can't find the manager

ISS-096 · Waivability is read from the live template, contrary to the template's own text

ISS-095 · The exit card has no way to waive a lane or record the final settlement

ISS-094 · A transfer to a department without a head can't finish its approval chain

ISS-093 · Lifecycle approval tasks in the Inbox are titled "Approval 5 · Lifecycle" with no details

ISS-092 · The exit card's "Routes through" text doesn't match the workflow that runs

ISS-091 · Lifecycle actions fail silently: rejected requests show no message

ISS-090 · Clearing the Assets lane of an exit always fails with a 500, so no exit can finish

ISS-089 · Onboarding document upload attaches to the last stage ("Induction"), not the current one

ISS-088 · The probation-confirmation questionnaire is assigned to HR instead of the manager, and appears in no inbox

ISS-087 · The confirmation review auto-opened at onboarding completion is incomplete and blocks a proper review

ISS-086 · Hiring managers and department heads get full Lifecycle admin controls

ISS-085 · Duplicate reference data: seven identical "Review questions" sets, and "Intern" listed twice as an employee class

ISS-084 · Transfer "impact checks" are free-text tags; a transfer can't change manager or position

ISS-083 · The "Laptop & access card issued" onboarding task isn't linked to the Assets module

ISS-082 · Converting a candidate to an employee skips the "New joiner onboarding" workflow and leaves the record incomplete

ISS-081 · Profile Actions → "Offboard…" is a dead end

ISS-080 · "Nudge owner" (New joinees) and "Mark verified" (onboarding documents) show a message but call no API

ISS-079 · The /lifecycle route (the "Lifecycle" breadcrumb) renders a blank page

ISS-078 · The inbox approval panel labels an offer approval as "Leave request" and shows no offer details

ISS-080 · [auto] Server error 503 on GET /api/me/identities

ISS-079 · [auto] Server error 503 on GET /api/me/identities

ISS-077 · "Convert to employee" sometimes doesn't open when clicked right after the last checklist item is ticked

ISS-076 · Cancelling a candidate's pre-onboarding silently rejects their application

ISS-078 · [auto] Server error 503 on GET /api/me/identities

ISS-077 · [auto] Server error 503 on GET /api/me/identities

ISS-076 · [auto] Server error 503 on GET /api/me/identities

ISS-075 · Posts and requisitions can't be closed from their obvious REST routes; only /transition works

ISS-074 · Withdrawing an application leaves its interviews scheduled, so the panel stays blocked

ISS-073 · [auto] Server error 503 on GET /api/me/identities

ISS-072 · [auto] Server error 503 on GET /api/me/identities

ISS-071 · [auto] Server error 503 on GET /api/me/identities

ISS-070 · Offers raised by the Company Super Admin get stuck: the approval goes to an unresolved "primary manager"

ISS-069 · "Propose to candidate" leaves the scheduling dialog open with no confirmation

ISS-068 · Override approval is offered to the requester, then refused by segregation of duties

ISS-067 · Requisition checklist picker lists "Pre-onboarding Default" and "Pre-onboarding default"

ISS-066 · Department heads get a policy-acknowledgement modal they're not allowed to acknowledge, and the policy text has unfilled merge fields

ISS-065 · Public careers site is unreachable (Cloudflare 522)

ISS-064 · Requisition approval summary lists an approver twice

ISS-063 · Workflow approver picker offers archived roles and a duplicate "Department head"

ISS-063 · [auto] Server error 500 on GET /api/company/documents/drive/grantee-options

ISS-062 · Starring a folder fails: "Validation error — Unrecognized key: starred"

ISS-062 · [auto] Server error 500 on GET /api/company/documents/drive/grantee-options

ISS-061 · Document drive writes succeed but answer HTTP 500 (follow-up to ISS-060)

ISS-060 · Document upload fails with HTTP 500, and the UI shows nothing

ISS-059 · Clicking "Download" on a finished export shows raw JSON "Unauthenticated" instead of the file

ISS-058 · Report CSV export fails intermittently with a database error, and the UI says nothing

ISS-057 · Custom field types missing: decimal, date-time, lookup/reference, file/attachment

ISS-056 · Custom fields can only be created for the Company, not employees, locations, departments, groups or positions

ISS-055 · Approval detail panel: wrong request type, and a raw timestamp

ISS-054 · Inbox "announcement review" item opens Home instead of the review

ISS-053 · Inbox approval items are titled just "Approval"

ISS-052 · Approval counts disagree: sidebar/Home say 15, Inbox shows 3 open

ISS-051 · Notification settings list "Approval reminder" and "Approval requested" twice

ISS-050 · "New approval chain" leaves a half-created, active workflow with no audience, and the dialog never closes

ISS-049 · Workflow Operations shows raw SQL errors, and 25 events are dead-lettered (incl. expense claims)

ISS-048 · Audit entries for company roles are typed "Platform" and name the role by its internal id

ISS-047 · Organization changes are not written to the audit log

ISS-046 · Company profile can't be reached from the app, and "New company" does nothing

ISS-045 · Impersonation ("log in as user") isn't in the product

ISS-046 · [auto] Server error 503 on GET /api/me/identities

ISS-045 · [auto] Server error 503 on GET /api/me/identities

ISS-044 · Company profile shows 0 employees and "0 of 0" modules

ISS-043 · Roles show more permissions than exist ("158 of 137 permissions")

ISS-042 · Agreements status filter has no "Draft" option

ISS-041 · Single-key shortcuts fire while a dropdown is open

ISS-040 · Bond tracking uses the agreement's validity, not the bond period entered

ISS-039 · "Renew +12 mo" on a draft agreement makes it Active without publishing

ISS-038 · A draft agreement can't be deleted from the UI

ISS-037 · Draft agreements show "Signed on" with today's date

ISS-036 · Agreement merge fields show their labels instead of the employee's and company's details

ISS-035 · "Pin to top of feed" is silently dropped on scheduled announcements

ISS-034 · Announcement templates load raw {{ placeholders }} and the picker resets

ISS-033 · Policy audience preview ignores quick filters

ISS-032 · Policy "Source template" lists letters and agreements, not just policy templates

ISS-031 · Policy distribution offers only Manual and Scheduled

ISS-030 · A retired policy's name can never be reused (code conflict with no way around it)

ISS-029 · Two holiday calendars can be created for the same location and year

ISS-028 · Holiday calendar "Applies to" offers inactive locations

ISS-027 · Chart options menu stays open after choosing "Full screen"

ISS-026 · Org chart: functional view, PDF export and dotted-line managers not found

ISS-025 · Replacing a group's members with an empty list leaves rule-matched members in place

ISS-024 · Follow-up to ISS-019: the backend can retire groups, but the UI calls the wrong endpoint

ISS-023 · Groups: the same idea has three names each for "condition" and "by hand"

ISS-022 · Group condition picker offers inactive departments

ISS-021 · Accessibility: "Pin __actions to the left" label on the Groups table

ISS-020 · Group "Manage people" dialog shows the Locations help text

ISS-019 · Retiring a group always fails ("Unrecognized key: status")

ISS-018 · Notifications: "Your 0-day leave request was approved"

ISS-017 · Copy: "1 of 12 position" when a position branch is focused

ISS-016 · Positions: filled count above sanctioned headcount isn't flagged

ISS-015 · Levels and grades can't be deleted or deactivated

ISS-014 · Chart view ignores "Show only this branch"

ISS-013 · "Show only this branch" is missing for departments that only have sub-departments

ISS-012 · Teams can't be edited or deactivated from the UI

ISS-011 · Department chart doesn't fit the tree on first open

ISS-010 · Departments and teams can't be deleted, only deactivated

ISS-009 · Copy: pluralisation in department screens

ISS-008 · Deactivating a department that still has an active team fails with a generic error

ISS-007 · Row actions (⋯) stop working after searching, clearing the search, then creating a location

ISS-006 · People can't be removed from an inactive location, so it can never be deleted

ISS-005 · Session saved via "Keep me signed in" doesn't survive a new browser context

ISS-004 · Sign-in page on QA exposes a shared-password hint

ISS-003 · Company Super Admin cannot view the jurisdiction catalog

ISS-002 · New US location defaults to America/New_York regardless of jurisdiction

ISS-001 · Deleted location's code stays reserved