You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2026-11-11] Spend - Trip status badge has different alignement from expense/report status badge #105386
Version Number: 9.5.25.0 Reproducible in staging?: Yes Reproducible in production?: N/A - new feature, doesn't exist in prod If this was caught during regression testing, add the test name, ID and link from BrowserStack:#104562 Email or phone of affected tester (no customers):[email protected] Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: iPhone 17 Pro Max / iOS 27.0.1 App Component: Search
Action Performed:
Precondition:
Have at least one trip.
Launch Expensify app.
Go to Spend > Trip.
Expected Result:
Trip status badge will have the same alignement as expense/report status badge.
Actual Result:
Trip status badge has different alignement from expense/report status badge.
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
Identify the pull request that introduced this issue and revert it.
Recommendation: Roll forward with a two-line fix. Don't revert. The bug is cosmetic, the Trips table is behind a beta, and the PR adds a 53-file feature.
Root cause: In the narrow card, the trip badge sits in a fixed 80pt box (TripListItemRow.tsx:86-88). Badge always applies alignSelfCenter (Badge.tsx:89), so the badge is centred in that box. That leaves it about 12pt short of the right edge. The expense/report card puts its badge flush right (UserInfoAndActionButtonRow.tsx:53).
Fix:
In TripStatusCell.tsx, add an optional badgeStyles prop and pass it to StatusBadge.
In the narrow branch only (TripListItemRow.tsx:87), pass badgeStyles={styles.alignSelfEnd}. Leave the wide-table call at line 113 unchanged.
Investigation details
Both TripListItemRow.tsx and TripStatusCell.tsx are new in this PR. Their history contains only this PR's commits.
TripStatusCell wraps the badge in a w100 + justifyContentCenter column (TripStatusCell.tsx:33). It copies the wide-table StatusCell (StatusCell.tsx:45). The centring is correct in the wide table but wrong in the narrow card.
Badge applies badgeStyles after alignSelfCenter, so alignSelfEnd overrides it.
The bug comes from the narrow layout, not from iOS itself. Narrow mWeb and Android likely show it too, though only iOS was reported.
Alternative fix: remove the w80 box and lay out the narrow row like UserInfoAndActionButtonRow (justifyContentBetween, with no fixed width on the badge wrapper).
Next Steps: Reply with @MelvinBot implement this to create a draft PR, or @MelvinBot <your feedback> to refine this analysis.
changed the title [-]Spend - Trip status badge has different alignement from expense/report status badge[/-][+][Due for payment 2026-11-11] Spend - Trip status badge has different alignement from expense/report status badge[/+]on Nov 4, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.31-4 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-11-11. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]
Activity
applause-bot commentedon Oct 29, 2026
While Applause doesn't embed attachments for this bug, here are the links for quick view:
https://platform.applause.com/services/links/v1/external/9c7163714db39a61c318d29828c3c77bd498828a836077f87f47e55cfa5da726
https://platform.applause.com/services/links/v1/external/41618c3b1780ae7136dea6983c617d0be8e6cc3695e44955f03ec5ad26d42aa4
melvin-bot commentedon Oct 29, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #104562
melvin-bot commentedon Oct 29, 2026
@stitesExpensify you have been assigned to this deploy blocker because you reviewed the offending PR: #104562
melvin-bot commentedon Oct 29, 2026
@suneox you have been assigned to this deploy blocker because you authored the offending PR: #104562
melvin-bot commentedon Oct 29, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon Oct 29, 2026
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
MelvinBot commentedon Oct 29, 2026
Deploy Blocker Investigation
Causing PR: 104405 trips table by
suneox(high confidence). It merged 2026-10-28 and is on the current Deploy Checklist: New Expensify 2026-10-29.Recommendation: Roll forward with a two-line fix. Don't revert. The bug is cosmetic, the Trips table is behind a beta, and the PR adds a 53-file feature.
Root cause: In the narrow card, the trip badge sits in a fixed 80pt box (TripListItemRow.tsx:86-88).
Badgealways appliesalignSelfCenter(Badge.tsx:89), so the badge is centred in that box. That leaves it about 12pt short of the right edge. The expense/report card puts its badge flush right (UserInfoAndActionButtonRow.tsx:53).Fix:
badgeStylesprop and pass it toStatusBadge.badgeStyles={styles.alignSelfEnd}. Leave the wide-table call at line 113 unchanged.Investigation details
TripListItemRow.tsxandTripStatusCell.tsxare new in this PR. Their history contains only this PR's commits.TripStatusCellwraps the badge in aw100+justifyContentCentercolumn (TripStatusCell.tsx:33). It copies the wide-tableStatusCell(StatusCell.tsx:45). The centring is correct in the wide table but wrong in the narrow card.BadgeappliesbadgeStylesafteralignSelfCenter, soalignSelfEndoverrides it.w80box and lay out the narrow row likeUserInfoAndActionButtonRow(justifyContentBetween, with no fixed width on the badge wrapper).Next Steps: Reply with
@MelvinBot implement thisto create a draft PR, or@MelvinBot <your feedback>to refine this analysis.stitesExpensify commentedon Oct 29, 2026
Not a blocker, new feature behind a beta
suneox commentedon Oct 30, 2026
@allgandalf The PR is ready for review
[-]Spend - Trip status badge has different alignement from expense/report status badge[/-][+][Due for payment 2026-11-11] Spend - Trip status badge has different alignement from expense/report status badge[/+]melvin-bot commentedon Nov 4, 2026
@suneox
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.31-4 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-11-11. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]