SatelliteHR e2e — bugs found

14 Oct 2026, 22:09 IST · qa.satellitehr.com · Attendance & Leave suite · full test report · BUGS.md

31 new failures · 16 open bugs · 7 sheet gaps · 0 now passing

36 passed · 54 failed · 0 skipped · run failed

New failures — drift or new bugs 31

Not tied to a logged issue in the test. A baseline failure means the tenant configuration changed: the diff shows what. Triage each one: log it in ISSUES.md, revert the change, or accept it by updating the baseline.

leave policies @pr › policy set matches the reviewed baseline

tests/contract/policies.spec.ts:21

Error: expect(string).toMatchSnapshot(expected) failed

  @@ -144,11 +144,11 @@
       "name": "Paid Time Off — handbook 16.1",
       "accrual": {
         "rate": 1.25,
         "frequency": "monthly",
         "proration": true,
  -      "waitingDays": 30
  +      "startNextMonth": true
       },
       "carryForward": {
         "maxDays": 30
       },

work from home @journey › up to 4 days: reason required, manager approves (rows 22, 24)

tests/journeys/al06-wfh.spec.ts:22

Test timeout of 360000ms exceeded.

work from home @journey › more than 4 days: manager, then the manager’s manager (row 24)

tests/journeys/al06-wfh.spec.ts:42

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidays
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=HBJBUINHw8UPRGINaJAh5FC462AuDOnW.Zig%2B%2F7V%2Bt5dWfOc5ti386tEU2femZGkIihvJSzYZeg4%3D

work from home @journey › manager declines with a reason (row 24)

tests/journeys/al06-wfh.spec.ts:54

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidays
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=wmRKz4MpJkrsqE92NJ9wOrXv4vHa2CFK.qdUVoNisyEJX%2FrrHaXQdsXwmyPdqrzz2Cqruw4YIByQ%3D

work from home @journey › overlapping requests are refused (row 23)

tests/journeys/al06-wfh.spec.ts:65

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidays
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=wmRKz4MpJkrsqE92NJ9wOrXv4vHa2CFK.qdUVoNisyEJX%2FrrHaXQdsXwmyPdqrzz2Cqruw4YIByQ%3D

comp-off @journey › overtime claimed as comp-off: manager review, HR confirmation, credited with an expiry (rows 29–31, 55, 63)

tests/journeys/al08-al09-compoff-balances.spec.ts:12

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/attendance/overtime/claimable?workDate=2026-10-13
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=HBJBUINHw8UPRGINaJAh5FC462AuDOnW.Zig%2B%2F7V%2Bt5dWfOc5ti386tEU2femZGkIihvJSzYZeg4%3D

special leave balances @journey › HR Manager credits special leave with a reason; the ledger keeps it (row 33)

tests/journeys/al08-al09-compoff-balances.spec.ts:59

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/leave/types?limit=100&offset=0
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=j9U3pyVLUej0oMCv9C6i8NbD7Q3U8NX8.HhrxAHTFAG8pOQgE2zNdy94sqMEKuynCXfHO%2F44Sb5Y%3D

roster @journey › HR Manager bulk-assigns a shift and the roster shows it (row 37)

tests/journeys/al10-al11-shifts.spec.ts:18

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidays
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=HBJBUINHw8UPRGINaJAh5FC462AuDOnW.Zig%2B%2F7V%2Bt5dWfOc5ti386tEU2femZGkIihvJSzYZeg4%3D

shift swap @journey › employee asks, manager approves, both roster days are traded (rows 40–42, 44–45)

tests/journeys/al10-al11-shifts.spec.ts:43

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidays
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=HBJBUINHw8UPRGINaJAh5FC462AuDOnW.Zig%2B%2F7V%2Bt5dWfOc5ti386tEU2femZGkIihvJSzYZeg4%3D

shift swap @journey › manager declines a swap with a reason and the roster stands (row 41)

tests/journeys/al10-al11-shifts.spec.ts:71

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidays
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=HBJBUINHw8UPRGINaJAh5FC462AuDOnW.Zig%2B%2F7V%2Bt5dWfOc5ti386tEU2femZGkIihvJSzYZeg4%3D

downloads @pr › attendance muster CSV: one row per person with status totals (rows 9–10)

tests/smoke/downloads.spec.ts:15

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/calendar
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/calendar", waiting until "domcontentloaded"
screenshot at failure

downloads @pr › leave requests report downloads as CSV (rows 20–21)

tests/smoke/downloads.spec.ts:26

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/leave/requests
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/leave/requests", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › e1 · /me/attendance

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me/attendance
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me/attendance", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › e1 · /me/leave

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me/leave
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me/leave", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › e1 · /me/overtime

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me/overtime
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me/overtime", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › mgr · /inbox

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/inbox
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/inbox", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › spoc · /attendance/overview

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/overview
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/overview", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › spoc · /attendance/calendar

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/calendar
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/calendar", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › spoc · /attendance/settings

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/settings
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/settings", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › spoc · /attendance/regularization

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/regularization
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/regularization", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › spoc · /attendance/audit

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/audit
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/audit", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › spoc · /attendance/sheet

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/sheet
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/sheet", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › spoc · /attendance/shifts

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/shifts
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/shifts", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › spoc · /attendance/schedules

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/schedules
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/schedules", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › spoc · /attendance/holidays

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/holidays
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/attendance/holidays", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › hrm · /leave/overview

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/leave/overview
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/leave/overview", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › hrm · /leave/requests

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/leave/requests
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/leave/requests", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › hrm · /leave/policies

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/leave/policies
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/leave/policies", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › hrm · /leave/balances

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/leave/balances
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/leave/balances", waiting until "domcontentloaded"
screenshot at failure

pages load @pr › hrm · /reports

tests/smoke/pages.spec.ts:34

Error: page.goto: net::ERR_NAME_NOT_RESOLVED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/reports
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/reports", waiting until "domcontentloaded"
screenshot at failure

home @pr › e1 · the employee Home page renders

tests/smoke/pages.spec.ts:46

Error: page.goto: net::ERR_INTERNET_DISCONNECTED at https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me
Call log:
  - navigating to "https://qa.satellitehr.com/company/82628593-49b6-4dad-ad2a-6b9472ab44fc/me", waiting until "domcontentloaded"
screenshot at failure

Open bugs — still reproduce 16

Logged in ISSUES.md. Each assertion states the correct behaviour; the error shows what the platform did instead.

known bugs: data integrity @pr @known-bug › ISS-422 · punch times are stored as real UTC

ISS-422: the server stores IST wall time with a Z suffix (5h30 ahead)

ISS-422 · tests/contract/data-integrity.spec.ts:15

Error: server "now" 2026-10-14T22:09:34Z vs real UTC 2026-10-14T16:39:34.496Z

expect(received).toBeLessThan(expected)

Expected: < 10
Received:   329.99173333333334

known bugs: data integrity @pr @known-bug › ISS-440 · nobody is credited leave types restricted to another gender, or more than the yearly entitlement

ISS-440: male employees hold Maternity Leave; Wedding/Floating/Bereavement credited twice

ISS-440 · tests/contract/data-integrity.spec.ts:22

Error: expect(received).toEqual(expected) // deep equality

- Expected  - 1
+ Received  + 6

- Array []
+ Array [
+   "Aarav Krishnamurthy.: maternity 182",
+   "Kavya Raghunathan: paternity 5",
+   "Test Interviewer One: paternity 5",
+   "Test Interviewer Two: maternity 182",
+ ]

known bugs: data integrity @pr @known-bug › ISS-446 · no PTO is credited before the policy’s waiting period ends

ISS-446: a 1 Oct joiner was credited October PTO on 9 Oct, inside the waiting period (waitingDays 30, now startNextMonth)

ISS-446 · tests/contract/data-integrity.spec.ts:45

Error: expect(received).toEqual(expected) // deep equality

- Expected  - 1
+ Received  + 3

- Array []
+ Array [
+   "2026-10-09 1.25 policy_entitlement:2026-10",
+ ]

known bugs: data integrity @pr @known-bug › ISS-445 · "Your shift" shows the shift on a working day, not "Off today"

ISS-445: the panel says "Off today — enjoy the day" on working days

ISS-445 · tests/contract/data-integrity.spec.ts:62

Error: expect(locator).not.toContainText(expected) failed

Locator: locator('#main-content').getByText('Your shift', { exact: true }).locator('xpath=ancestor::*[3]')
Expected pattern: not /Off today/
Received string: "Your shiftFrom your team’s work scheduleSwap a shiftOff today — enjoy the dayGeneral hoursSwap with QA Employee Two · 12 Nov · cancelledSwap with QA Employee Two · 29 Oct · cancelledSwap with QA Employee Two · 4 Nov · rejectedSwap with QA Employee Two · 11 Nov · approvedSwap with QA Employee Two · 11 Nov · cancelledSwap with QA Employee Two · 16 Nov · cancelledSwap with QA Employee Two · 27 Oct · rejectedSwap with QA Employee Two · 26 Oct · cancelledSwap with QA Employee Two · 28 Oct · cancelledSwap with QA Employee Two · 17 Nov · cancelledSwap with QA Employee Two · 4 Nov · rejectedSwap with QA Employee Two · 18 Nov · approvedSwap with QA Employee Two · 3 Nov · cancelledSwap with QA Employee Two · 18 Nov · cancelledSwap with QA Employee Two · 11 Nov · rejectedSwap with QA Employee Two · 23 Oct · approvedSwap with QA Employee Two · 23 Oct · approvedSwap with QA Employee Two · 22 Oct · cancelledSwap with QA Employee Two · 12 Nov · cancelledSwap with QA Employee Two · 22 Oct · rejectedSwap with QA Employee Two · 21 Oct · approvedSwap with QA Employee Two · 21 Oct · rejectedSwap with QA Employee Two · 22 Oct · approved"
Timeout: 30000ms

Call log:
  - Expect "not toContainText" locator('#main-content').getByText('Your shift', { exact: true }).locator('xpath=ancestor::*[3]') with timeout 30000ms
  - waiting for locator('#main-content').getByText('Your shift', { exact: true }).locator('xpath=ancestor::*[3]')
    63 × locator resolved to <div class="rounded-lg border border-edge bg-surface shadow-xs">…</div>
       - unexpected value "Your shiftFrom your team’s work scheduleSwap a shiftOff today — enjoy the dayGeneral hoursSwap with QA Employee Two · 12 Nov · cancelledSwap with QA Employee Two · 29 Oct · cancelledSwap with QA Employee Two · 4 Nov · rejectedSwap with QA Employee Two · 11 Nov · approvedSwap with QA Employee Two · 11 Nov · cancelledSwap with QA Employee Two · 16 Nov · cancelledSwap with QA Employee Two · 27 Oct · rejectedSwap with QA Employee Two · 26 Oct · cancelledSwap with QA Employee Two · 28 Oct · cancelledSwap with QA Employee Two · 17 Nov · cancelledSwap with QA Employee Two · 4 Nov · rejectedSwap with QA Employee Two · 18 Nov · approvedSwap with QA Employee Two · 3 Nov · cancelledSwap with QA Employee Two · 18 Nov · cancelledSwap with QA Employee Two · 11 Nov · rejectedSwap with QA Employee Two · 23 Oct · approvedSwap with QA Employee Two · 23 Oct · approvedSwap with QA Employee Two · 22 Oct · cancelledSwap with QA Employee Two · 12 Nov · cancelledSwap with QA Employee Two · 22 Oct · rejectedSwap with QA Employee Two · 21 Oct · approvedSwap with QA Employee Two · 21 Oct · rejectedSwap with QA Employee Two · 22 Oct · approved"
screenshot at failure

known bugs: data integrity @pr @known-bug › ISS-447 · the Service Leave policy form shows its rule without a validation error

ISS-447: blank accrual and "Entitlement can't be negative" on open

ISS-447 · tests/contract/data-integrity.spec.ts:76

Error: expect(locator).toHaveCount(expected) failed

Locator:  getByRole('dialog').filter({ hasText: /Edit policy/ }).last().getByText(/Entitlement can't be negative/)
Expected: 0
Received: 1
Timeout:  30000ms

Call log:
  - Expect "toHaveCount" getByRole('dialog').filter({ hasText: /Edit policy/ }).last().getByText(/Entitlement can't be negative/) with timeout 30000ms
  - waiting for getByRole('dialog').filter({ hasText: /Edit policy/ }).last().getByText(/Entitlement can't be negative/)
    62 × locator resolved to 1 element
       - unexpected value "1"
screenshot at failure

known gaps: permissions @pr @known-bug › ISS-444 · mgr can save the roster it is shown (rows 36–37)

ISS-444: reporting managers, department heads and HR SPOC are refused (403) on roster saves

ISS-444 · tests/contract/permissions.spec.ts:41

Error: expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

known gaps: permissions @pr @known-bug › ISS-444 · dh can save the roster it is shown (rows 36–37)

ISS-444: reporting managers, department heads and HR SPOC are refused (403) on roster saves

ISS-444 · tests/contract/permissions.spec.ts:41

Error: expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

known gaps: permissions @pr @known-bug › ISS-444 · spoc can save the roster it is shown (rows 36–37)

ISS-444: reporting managers, department heads and HR SPOC are refused (403) on roster saves

ISS-444 · tests/contract/permissions.spec.ts:41

Error: expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

leave policies @pr › PTO: 1.25 days a month after 30 days, carry-forward 30, LOP fallback (rows 48–51, 60)

ISS-450: since 14 Oct the PTO policy has startNextMonth instead of the 30-day waiting period

ISS-450 · tests/contract/policies.spec.ts:28

Error: expect(received).toMatchObject(expected)

- Expected  - 1
+ Received  + 0

  Object {
    "frequency": "monthly",
    "rate": 1.25,
-   "waitingDays": 30,
  }

known bugs: workflows @pr @known-bug › ISS-452 · the long-leave threshold used by leave approval is a visible parameter

ISS-452: routing works since 14 Oct, but param lv.long_leave_days is still not defined, so the 3-day threshold is a hidden default no one can see or change

ISS-452 · tests/contract/workflows.spec.ts:105

Error: expect(received).toContain(expected) // indexOf

Expected value: "lv.long_leave_days"
Received array: ["ext.ceo_pack_sla", "ext.clearance_trigger", "ext.counteroffer_issue_sla", "ext.counteroffer_response_sla", "ext.damage_assessment_sla", "ext.escalate_to_hr_sla", "ext.exit_docs_sla", "ext.ffs_clear_sla", "ext.ffs_gratuity_target", "ext.ffs_l1", …]

known bugs: workflows @pr @known-bug › ISS-441 · earning comp-off does not require an existing comp-off balance

ISS-441: Comp-Off Request rejects when employee.balance <= 0 and debits the ledger on approval

ISS-441 · tests/contract/workflows.spec.ts:112

Error: expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

regularization @journey › missed punch: manager approves and the day is rewritten (rows 4–5)

ISS-455/456: worked hours are not recalculated after a late-arrival correction (1.07 h span reported as 0.57 h)

ISS-455 · ISS-456 · tests/journeys/al01-al02-attendance.spec.ts:101

Error: worked 0.57 h vs span 1.07 h (2026-10-13 09:45:00+00 → 2026-10-13 10:49:04+00)

expect(received).toBeLessThan(expected)

Expected: < 0.1
Received:   0.49777777777777776
screenshot at failurescreenshot at failure

known bugs: leave @journey @known-bug › ISS-453 · a pending Leave Without Pay request can be withdrawn (row 18)

ISS-453: withdrawing a pending LWP request is refused with 403 PROTECTED_RUN ("forced by the platform tier")

ISS-453 · tests/journeys/al04-al05-leave.spec.ts:181

Error: timed out waiting for request withdrawn
screenshot at failure

known bugs: leave @journey @known-bug › ISS-437/439 · approved leave with confirmed unpaid days is posted and stays approved (row 15)

ISS-437/439: post_ledger fails with "Insufficient balance" and the request ends rejected

ISS-437 · ISS-439 · tests/journeys/al04-al05-leave.spec.ts:201

Test timeout of 360000ms exceeded.

known bugs: comp-off @journey @known-bug › ISS-441 · a request to earn comp-off for a weekend reaches the manager (rows 29–30)

ISS-441: Request comp-off is rejected for having no comp-off balance

ISS-441 · tests/journeys/al08-al09-compoff-balances.spec.ts:35

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/auth-context
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=wmRKz4MpJkrsqE92NJ9wOrXv4vHa2CFK.qdUVoNisyEJX%2FrrHaXQdsXwmyPdqrzz2Cqruw4YIByQ%3D

known bugs: comp-off @journey @known-bug › ISS-442 · HR confirmation goes to the employee’s HR partner only

ISS-442: hr_partner fans out to every HR user in the company

ISS-442 · tests/journeys/al08-al09-compoff-balances.spec.ts:47

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/company/workflows/instances?limit=50
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=6L7qw05USx9GlP4p5JWdFZn7N3groRRD.JNczm2FLb7Sb0z8MbYqLO8OPBG3neoQA3krUIrJKeL8%3D

Gaps against the workflow sheet 7

The Attendance & Leave sheet asks for this; the platform does not do it (GAPS.md).

known gaps: permissions @pr @known-bug › GAPS row 33 · HR SPOC can adjust special leave balances

HR SPOC has no balance-adjust right on this tenant (GAPS.md row 33)

GAPS.md row 33 · tests/contract/permissions.spec.ts:46

Error: expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

known gaps: permissions @pr @known-bug › GAPS row 34 · HR SPOC can change leave configuration

HR SPOC is view-only on leave policies on this tenant (GAPS.md row 34)

GAPS.md row 34 · tests/contract/permissions.spec.ts:50

Error: expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

known gaps: configuration @pr @known-bug › GAPS row 1 · days under 8 hours count as half days

Half-day cut-off is 4 hours on this tenant; the sheet asks for 8 (GAPS.md row 1)

tests/contract/policies.spec.ts:76

Error: expect(received).toBe(expected) // Object.is equality

Expected: 8
Received: 4

known gaps: work from home @journey @known-bug › GAPS row 22 · back-dated work from home is refused

Back-dated WFH is accepted and sent to the manager (GAPS.md row 22)

GAPS.md row 22 · tests/journeys/al06-wfh.spec.ts:79

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidays
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=wmRKz4MpJkrsqE92NJ9wOrXv4vHa2CFK.qdUVoNisyEJX%2FrrHaXQdsXwmyPdqrzz2Cqruw4YIByQ%3D

known gaps: work from home @journey @known-bug › GAPS row 25 · long WFH gets an HR SPOC review

No HR SPOC step in the WFH workflow (GAPS.md row 25)

GAPS.md row 25 · tests/journeys/al06-wfh.spec.ts:87

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidays
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=wmRKz4MpJkrsqE92NJ9wOrXv4vHa2CFK.qdUVoNisyEJX%2FrrHaXQdsXwmyPdqrzz2Cqruw4YIByQ%3D

known gaps: shifts @journey @known-bug › GAPS row 43 · the teammate is asked to accept a swap first

No peer acceptance: the swap goes straight to the manager (GAPS.md row 43)

GAPS.md row 43 · tests/journeys/al10-al11-shifts.spec.ts:87

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidays
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=HBJBUINHw8UPRGINaJAh5FC462AuDOnW.Zig%2B%2F7V%2Bt5dWfOc5ti386tEU2femZGkIihvJSzYZeg4%3D

known gaps: shifts @journey @known-bug › GAPS row 42 · a swap between identical shifts is refused

Eligibility does not check identical shifts (GAPS.md row 42)

GAPS.md row 42 · tests/journeys/al10-al11-shifts.spec.ts:100

Error: apiRequestContext.fetch: getaddrinfo ENOTFOUND satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev
Call log:
  - → GET https://satellite-hr-backend-final-restructure.polished-mud-fefe.workers.dev/api/me/leave/holidays
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - Origin: https://qa.satellitehr.com
    - Referer: https://qa.satellitehr.com/
    - cookie: __Secure-better-auth.session_token=HBJBUINHw8UPRGINaJAh5FC462AuDOnW.Zig%2B%2F7V%2Bt5dWfOc5ti386tEU2femZGkIihvJSzYZeg4%3D