Newest first · All dates · Raw · Download · CSV
SatelliteHR — QA issues found on 14 Oct 2026
38 issues (7 high · 8 medium · 22 auto). Environment: https://qa.satellitehr.com. Source of truth: the append-only ISSUES.md.
ISS-449 · (update to ISS-421) The employee Home page renders again
- Module: Self service / Home · Severity: — · Found: 14 Oct 2026
- Steps: As qa.employee1 (saved session), open
/company/82628593…/me. - Actual: The page renders ("Good morning, QA", Apply for leave, Correct attendance, Days you have, This week). ISS-421 no longer reproduces. The e2e suite now checks it on every PR (
e2e/tests/smoke/pages.spec.ts). - Expected: —
- Evidence: e2e/test-results (14 Oct run)
ISS-448 · "Ask to swap" spins for about two minutes and the dialog stays open, although the swap request is created
- Module: Attendance / shift swap · Severity: Medium · Found: 14 Oct 2026
- Steps: As qa.employee1, My attendance → Swap a shift → QA Employee Two, 22 Oct 2026, reason → Ask to swap (and again for 21 Oct).
- Actual: Both times the button spun for about 110 s and then returned to "Ask to swap" with the dialog still open and no message. Each request had been created and went to QA Manager's Inbox. Same pattern as the overtime claim (ISS-443) and the WFH form timeout (ISS-438).
- Expected: The swap is sent within a few seconds, the dialog closes and confirms.
- Evidence: AL11 recording (raw part 1, before trimming: 0:25–2:17 and 3:14–5:10)
ISS-447 · Service Leave's policy form can't show its anniversary rule: blank accrual, "Entitlement can't be negative", list says "—d / year"
- Module: Leave / policies · Severity: Medium · Found: 14 Oct 2026
- Steps: As qa.hrmanager, Leave → Policies → "Service Leave — handbook 16.2".
- Actual: The list's Entitlement column reads "—d / year". The Edit policy drawer opens with Accrual blank and Entitlement (days / year) empty, flagged "Entitlement can't be negative". The stored rule is
{frequency: "anniversary", perYearOfService: 2, maxDays: 10}with carry-forward 10 days expiring after 12 months, but the form has no anniversary option and no per-year-of-service field. Saving the form would overwrite or reject the real rule. - Expected: The form supports the rule it stores: anniversary accrual, days per year of service, a yearly maximum, expiry months, and shows "2 days per year of service, up to 10" in the list.
- Evidence: output/evidence/ISS-447-service-leave-form.png
ISS-446 · PTO credited in the joining month despite the policy's 30-day wait (and shown rounded as 1.3d)
- Module: Leave / accrual · Severity: Medium · Found: 14 Oct 2026
- Steps: QA Employee One (QAT-006) was hired on 1 Oct 2026. Leave → Balances → Actions → Balances and ledger.
- Actual: The ledger has "+1.3d PAID-TIME-OFF-PTO · Accrued · 9 Oct 2026 · policy_entitlement:2026-10", i.e. the October credit 8 days after joining. The PTO policy (handbook 16.1) has
waitingDays: 30("a joiner is credited nothing until they complete 30 days"). The sheet's rule for India is a first credit on the 1st of the month after joining (1 Nov). The ledger also shows 1.25 as "1.3d" while the balance card says 1.25. - Expected: No PTO credit before the waiting period ends (first credit 1 Nov for a 1 Oct joiner); ledger amounts shown to two decimals.
- Evidence: output/evidence/ISS-446-pto-credit.png
ISS-477 · [auto] Uncaught page error: undefined
- Module: al11-shift-swap
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-476 · [auto] Server error 500 on GET /api/me/policies/my
- Module: al11-shift-swap
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/workflows/designer/wf-6b932b
- Request: GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/my
ISS-475 · [auto] Uncaught page error: undefined
- Module: al11-shift-swap
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-445 · My attendance says "Off today — enjoy the day" on a working day, and a holiday gets a rostered shift
- Module: Attendance / My attendance · Severity: Medium · Found: 14 Oct 2026
- Steps: As qa.employee1 on Wed 14 Oct 2026 (a working day on the General Shift, no leave), open Leave & attendance → Attendance.
- Actual: The day card says "Wednesday 14 October · You haven't clocked in yet · General Shift 10:00 AM – 7:00 PM", but the "Your shift" panel next to it says "Off today — enjoy the day". (The same appeared for QA Employee Two on 13–14 Oct.) Also, HR Manager's bulk assign of Operations Shift for weekdays 19–23 Oct put a shift on Tue 20 Oct (Dussehra, a holiday); "Your schedule" shows "Ope…" for the 20th.
- Expected: "Your shift" shows today's rostered shift on a working day; bulk assign skips holidays (or warns), and the schedule shows the holiday.
- Evidence: output/evidence/ISS-445-off-today.png
ISS-474 · [auto] Server error 500 on GET /api/me/attendance/my/clock
- Module: al10-shift-roster
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc
- Request: GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/attendance/my/clock
ISS-444 · Managers, department heads and HR SPOC are offered Bulk assign and roster edits, but every save is refused (403) with no message
- Module: Attendance / Shifts & rosters · Severity: High · Found: 14 Oct 2026
- Steps: As qa.manager (or qa.depthead, or qa.hrspoc), Attendance → Shifts & rosters → Bulk assign → pick QA Employee One, 19 Oct 2026, Operations Shift → Assign shift.
- Actual:
POST /api/company/attendance/roster/assignmentsreturns 403: for the manager and department head "This action needs edit access to attendance" (module: attendance, required: edit); for HR SPOC "You do not have permission to do this" (attendance.shift.manage). The dialog stays open with the button enabled and no error. Nothing is saved. Only qa.hrmanager and qa.hrhead get 200 ({"applied":1}). - Expected: Either give these roles roster rights (the sheet has reporting managers build and assign the roster, and HR SPOC configure shifts), or hide Bulk assign / Upload roster / chip editing for them. In any case, show the refusal in the dialog.
- Evidence: request/response captured with scratch/CSV/bulk.ts (requestIds e6d9b2e0…, 8c3c586c…, cf339fa9…)
ISS-473 · [auto] Uncaught page error: undefined
- Module: al8-compoff
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-443 · Claiming overtime spins for about two minutes and the dialog never closes, although the claim is saved
- Module: Overtime & comp-off / Claim comp-off · Severity: Medium · Found: 14 Oct 2026
- Steps: As qa.employee1, Overtime & comp-off → Claim comp-off → 9 Oct 2026, 2 hours, Comp-off, note "Release testing ran late" → Claim it (08:06 IST).
- Actual: "Claim it" showed a spinner for about 110 s, then turned back into an enabled "Claim it" with the dialog still open and no message. The claim had been created (e14c7066-1d42-43a3-8204-8c5118b6c3b3, pending, run 70427a48…) and went to QA Manager. A second click would have made a duplicate attempt.
- Expected: The claim saves in a few seconds, the dialog closes and confirms; on a timeout, the form says the claim may already be saved.
- Evidence: AL8 recording (part 0, 1:02–2:50)
ISS-472 · [auto] Uncaught page error: undefined
- Module: al8-compoff
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-442 · "HR partner" approvals go to every HR user in the company (14 people), not the employee's HR partner
- Module: Workflows / relationship
hr_partner· Severity: Medium · Found: 14 Oct 2026 - Steps: qa.employee1 claimed 2 h overtime on 9 Oct as comp-off; QA Manager approved (run 70427a48-9815-4c8c-bfca-883d886af5a3).
- Actual: Step "HR confirmation" (
hr_ot_confirm, assigned viarelationship:hr_partner) created 14 pending tasks, one each for every HR Manager, HR Head and HR SPOC in the company plus two Executives and the super admin (e.g. kavya.raghunathan, raju.rastogi, harshit@gomagentic.com, qa.hrspoc, qa.hrmanager, qa.hrhead, aarav.krishnamurthy, vikram.raghavan, admin@opsmaven.test). Any one of them can approve a Delivery employee's claim. - Expected: The employee's own HR partner (for Delivery: QA HR SPOC) gets the task. If no HR partner is set, fall back to a defined role, not everyone, and say so in the designer.
- Evidence: run tasks list (14 × hr_ot_confirm)
ISS-441 · "Request comp-off" (earning a day for weekend work) is rejected for having no comp-off balance
- Module: Overtime & comp-off / Comp-Off Request workflow · Severity: High · Found: 14 Oct 2026
- Steps: As qa.employee2, Overtime & comp-off → Request comp-off ("Worked on a holiday or a day off? Ask for the day back. Once approved it's added to your comp-off balance.") → Day worked Sun 11 Oct 2026, A full day, "Worked Sunday on the release cut-over" → Send request. Request 80bfb86b-16e2-4071-b0f7-e17862252716, run 156f6ab3-0c20-4b3e-b9b2-0a4832e1382b.
- Actual: The run goes straight from
gate_balance(conditionemployee.balance <= 0) to "No comp-off to spend" and ends rejected: "Your comp-off request cannot proceed — you have no credited comp-off days". It never reaches the manager. The workflow is built for spending comp-off: its approved path posts aleave_debit, so an approved request would lower the balance instead of raising it. - Expected: A request to earn comp-off goes to the reporting manager (and HR head, per the sheet), and on approval credits the day to the Comp-off balance with its 90-day expiry.
- Evidence: run events (gate_balance → notify_no_balance → completed rejected)
ISS-471 · [auto] Uncaught page error: undefined
- Module: al6-wfh
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-440 · Balances show a male employee with 182 days of Maternity Leave, and annual leave types credited twice
- Module: Leave / balances & accrual · Severity: High · Found: 14 Oct 2026
- Steps: As qa.hrmanager, Leave → Balances → Actions for Aarav Krishnamurthy. (EMP-0014, gender male, hired 3 Apr 2023) → Balances and ledger.
- Actual: BALANCES · 2026 lists MATERNITY-LEAVE 182d accrued (the policy is "Female only"), alongside PATERNITY-LEAVE 5d. Annual types show about twice the policy: WEDDING-LEAVE 14d (policy 7d/year), FLOATING-HOLIDAYS 4d (policy 2d/year), BLE (Bereavement) 20d (policy 10 days), all as "Accrued" entries dated 5 Oct 2026. The other employees on the first page show Bereavement 0d or 20d, not 10.
- Expected: Gender-restricted types are credited only to eligible employees, and each annual entitlement is credited once per year (Wedding 7, Floating 2, Bereavement 10).
- Evidence: ledger view "How it moved" (policy_entitlement:2026 entries)
ISS-470 · [auto] Uncaught page error: undefined
- Module: al6-wfh
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-469 · [auto] Uncaught page error: undefined
- Module: al5-leave-cancel-withdraw
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-439 · (follow-up to ISS-437) The manager-approved request with unpaid days ends as "Rejected" after the posting retries run out
- Module: Leave / ledger posting · Severity: High · Found: 14 Oct 2026
- Steps: qa.employee1 PTO 17–19 Nov (1.25 paid + 1.75 unpaid confirmed), approved by QA Manager at ~07:00 IST (run 00830afa-6364-438a-8337-d4f49ffaf53b).
- Actual:
post_ledgerfailed again and again ("Insufficient balance: 1.25 available, 3 requested"). At 07:07 IST the engine ran the compensation stepreverse_postand completed the run as rejected. The request now reads Rejected although the manager approved it. Nobody rejected it, and the employee isn't told why. - Expected: The request is posted as 1.25 days PTO + 1.75 days loss of pay and ends Approved. A system failure after approval should never look like the manager's rejection.
- Evidence: run events (failed ×N → reverse_post → completed, status rejected)
ISS-438 · Work-from-home submit times out with "Something went wrong" although the request is created (and it is typed "Leave Without Pay")
- Module: Leave & time off / Work from home · Severity: Medium · Found: 14 Oct 2026
- Steps: As qa.employee2, Leave & time off → Apply → Work from home → 3–4 Nov 2026, reason "Plumber visit at home, will work remotely" → Send request (07:2x IST).
- Actual: After 20 s the form shows a red toast "Something went wrong — Request timed out after 20s. The server may be slow or unreachable", and the form keeps its values, inviting a second Send. The request was created anyway:
kind: wfh, status pending, run 58c3657b-dfd4-4634-ace9-ffe4534ac90e with a Manager approval task. In Leave → Requests data it carriesleaveTypeName: "Leave Without Pay". - Expected: The submit answers in time (or the form waits for the server instead of a 20 s client timeout), and a WFH request isn't labelled as a leave type.
- Evidence: output/evidence/ISS-438-wfh-timeout.png
ISS-468 · [auto] Uncaught page error: undefined
- Module: al5-leave-cancel-withdraw
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-467 · [auto] Uncaught page error: undefined
- Module: al5-leave-cancel-withdraw
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-466 · [auto] Uncaught page error: undefined
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-437 · Approved leave with confirmed unpaid days fails to post: "Insufficient balance"
- Module: Leave / ledger posting · Severity: High · Found: 14 Oct 2026
- Steps: Same request as ISS-436: PTO 25–27 Nov, 1.25 days paid + 1.75 days unpaid (the employee ticked "I understand 1.75 days will be unpaid"; the request carries
lopDisposition: partial_lop,paidDays: 1.25,lopDays: 1.75). The manager approves. - Actual: Step
post_ledgerfails twice with "Insufficient balance: 1.25 available, 3 requested" (it postsunits: requestwithallowNegative: false). The run staysrunningwith a pending failed task, and the request stays Pending for good. The employee is never told. - Expected: Posting debits 1.25 days of PTO and records 1.75 days as loss of pay, then notifies the employee "approved".
- Evidence: run 97c38853-4ddf-473f-9b6d-5bd31aaf028e events (failed ×2 at post_ledger)
ISS-436 · Leave of three days or more skips the department head (parameter lv.long_leave_days is not defined)
- Module: Leave / Annual Leave Approval workflow · Severity: High · Found: 14 Oct 2026
- Steps: qa.employee2 applied for PTO 25–27 Nov 2026 (3 working days, request 4e2ac7e3-e6c8-43fd-891f-d189b326d225, run 97c38853-4ddf-473f-9b6d-5bd31aaf028e). QA Manager approved.
- Actual:
gate_long("Three days or more?", conditionrequest.consecutiveDays >= param:lv.long_leave_days) chosepost_ledger, althoughconsecutiveDaysis 3. GET /api/company/workflows/parameters has nolv.*parameter at all, so the department head step can never run. - Expected: With 3 consecutive days the request goes to Department head approval (sheet row 14: 2 levels for ≥ 3 days). The parameter should exist (default 3), or the designer should refuse to publish a condition that names a missing parameter.
- Evidence: run events in scratch/CSV (gate_long → post_ledger)
ISS-465 · [auto] Uncaught page error: undefined
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-464 · [auto] Server error 500 on GET /api/me/inbox
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me/leave
- Request: GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/inbox
ISS-463 · [auto] Server error 500 on GET /api/me/attendance/my/clock
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me/leave
- Request: GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/attendance/my/clock
ISS-462 · [auto] Uncaught page error: undefined
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Stack: ``
ISS-461 · [auto] Server error 500 on GET /api/me/leave/my
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Request: GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/my
ISS-460 · [auto] Server error 500 on GET /api/me/company-context
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Request: GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/company-context
ISS-459 · [auto] Server error 500 on GET /api/me/attendance/my/clock
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Request: GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/attendance/my/clock
ISS-458 · [auto] Server error 500 on GET /api/me/policies/my
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Request: GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/my
ISS-457 · [auto] Server error 500 on GET /api/me/people/onboarding/tasks/mine
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Request: GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/people/onboarding/tasks/mine
ISS-456 · [auto] Server error 500 on GET /api/me/policies/my
- Module: al4-leave-approval
- Found: 2026-10-14
- Page: https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
- Request: GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/policies/my
ISS-435 · A leave request's workflow stops after the balance check; no manager task is created
- Module: Leave / Annual Leave Approval workflow · Severity: High · Found: 14 Oct 2026
- Steps: As qa.employee2@opsmaven.test, Leave & time off → Floating Holidays → 23 Nov 2026 (1 day), note "Family function" → Send request (05:03 IST). Request 47bb8cdc-56be-4d4b-9ab1-cdd72b59ea37, run 2866a544-051e-4106-8a16-ac2098a61a48 (WF-2026-000467).
- Actual: The run's events are
created→step_started gate_balance(chosemgr_approval) →step_done gate_balance, then nothing. After 20+ minutes there are 0 tasks,openStepNames: [], statusrunning, and nothing in QA Manager's Inbox. The request stays Pending with nobody to act on it. - Expected: The Manager approval task is created straight after the balance check, as it was for regularization runs the same night.
- Evidence: GET /api/company/workflows/instances/2866a544-051e-4106-8a16-ac2098a61a48 (saved in scratch/CSV/run.json)
ISS-434 · Sending an attendance correction can take over two minutes to answer
- Module: Attendance / regularization · Severity: Medium · Found: 14 Oct 2026
- Steps: As qa.employee2@opsmaven.test, My attendance → Request a correction → 6 Oct, "I worked from home", reason → Send for approval (AL2 rehearsal, 14 Oct ~00:55 IST).
- Actual:
POST /api/me/attendance/regularizationsgave no response within 120 s. The request was created (Pending, with QA Manager) and the workflow started, so the save had worked, but the form waited the whole time. - Expected: The submit answers in a few seconds. Workflow start can happen after the response.
- Evidence: output/al2-rehearsal.log (first run, "correction refused: no response")