Bug Fix: FixFlo Override API Path Corrected in v0.1.93
Bug Fix: FixFlo Override API Path Corrected in v0.1.93
Release: v0.1.93
Severity: High — affected all person-level FixFlo maintenance override lookups
Files changed: src/lib/letmc/features.ts, tests/lib/letmc/features.test.ts
What happened
The getPersonFixfloOverride() function in src/lib/letmc/features.ts was constructing the AgentOS API path with its two final segments in the wrong order:
# Incorrect (before v0.1.93)
GET /{clientName}/overrides/fixflo/{personID}
# Correct (from v0.1.93 onwards)
GET /{clientName}/overrides/{personID}/fixflo
The personID and fixflo segments were swapped, so every request hit an endpoint that AgentOS does not recognise — resulting in 404 errors or unexpected data being returned.
Who was affected
Anything that resolves a person-level FixFlo maintenance override was broken. This includes:
- BFF route —
POST /api/bff/overrides/fixflodelegates togetPersonFixfloOverride(). All calls were silently returningnull(the function treats API errors as non-critical and returnsnullrather than throwing). - tRPC router —
featureOverrides.personFixflohas the same dependency and the same silent failure mode. - Feature flag resolution —
resolveFeatureFlags()callsgetPersonFixfloOverride()as part of its priority chain to determine the FixFlo URL surfaced to a portal user. Because the lookup always failed, the person-level override was never applied; the chain fell back to the company-level override (or no URL at all).
The fix
The path construction in getPersonFixfloOverride() was corrected to place personID before fixflo:
// Before
`/${encodeURIComponent(trimmedShortName)}/overrides/fixflo/${encodeURIComponent(trimmedPersonId)}`
// After
`/${encodeURIComponent(trimmedShortName)}/overrides/${encodeURIComponent(trimmedPersonId)}/fixflo`
JSDoc comments in features.ts were also updated to document the correct path format.
Test coverage
The test suite in tests/lib/letmc/features.test.ts was updated to assert the corrected path:
- Path construction test now verifies the call is made to
/acme%20lettings/overrides/person%20123/fixflo(previously asserted the reversed form). - 404 and 500 error-handling tests updated to use the correct URL format in mock errors.
resolveFeatureFlagstests updated: the path discriminator now matches onpath.includes("/fixflo")rather thanpath.includes("/overrides/fixflo/"), which is correct for the new path shape and avoids false negatives.
Action required
No configuration changes are needed. Upgrading to v0.1.93 is sufficient. Person-level FixFlo override lookups will begin resolving correctly against AgentOS on the next request after deployment.