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
No suggestions when type declined: on search #104399
Version Number: 9.5.14-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:#103309 Email or phone of affected tester (no customers):[email protected] Issue reported by: Applause Internal Team Bug source: Pull Request QA execution Device used: windows 10/chrome App Component: Other
Action Performed:
As a submitter on a workspace with approvals, submit three reports to an approver.
As the approver, reject one expense on the first report.
As the approver, reject the whole second report.
As the submitter, go to Spend > Expenses and click Filters.
Verify Rejected appears below Billable.
Select Rejected > Yes.
Verify a "Rejected: Yes" chip appears and only the rejected expense is listed.
Change the chip to No.
Verify the rejected expense is not listed and the other expenses are.
👋 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.
⚠️Preliminary analysis (low confidence): treat this as a starting point, not a conclusion.
Recommendation: don't revert yet. First get the exact text the tester typed. I couldn't find a code defect. Add Rejected search filter for expenses and expense reports is the only PR that adds declined:, and its autocomplete is wired the same way as billable:.
The PR's staging screenshot shows declined:no and declined:yes suggested.
Likely explanation (unverified): The router opened from Spend pre-fills the current query, such as type:expense-report declined:yes (SearchRouter.tsx:141). After step 13, typing declined: there gives one of two results:
With no space (...declined:yesdeclined:), nothing parses, so no suggestions appear.
billable: and reimbursable: behave the same way in both cases, so this would not be a regression.
Next steps:
Applause: share the full search input text at step 14, and say whether it was pre-filled.
c3024: retest on 9.5.14-0 with an empty search input.
If it fails with an empty input, this is a real bug. Add a test that runs the real parser on declined:. The current test mocks parseForAutocomplete, so the parser never runs.
I tried to reproduce this on web, but the test session didn't load, so I have no live result. I found no follow-up PR for this issue.
Next Steps: Reply with @MelvinBot <your feedback> to refine this analysis.
@MelvinBot I think this is expected since the keyword box only supports keywords. To use search syntax, you need to go to the search screen via the magnifying glass icon.
Agreed, QichenZhu. The code supports this. The inline keyword box on Spend has no autocomplete. Only the router opened by the magnifying glass suggests search syntax. So no suggestions in the keyword box is expected, and it isn't a regression from Add Rejected search filter for expenses and expense reports.
Keyword box:SearchPageInput.tsx:65-69 is a plain TextInput with no suggestion list. On submit, escapeKeyword wraps key:value text in quotes, so declined:yes becomes a literal keyword. billable: behaves the same way there.
Magnifying-glass router: this one does suggest values. declined shares a case with billable and returns yes/no: useAutocompleteSuggestions.ts:548-557.
Both inputs use the same placeholder, "Search for something...", which makes them easy to mix up.
If the tester confirms they typed into the keyword box, you can close this or remove the DeployBlockerCash label. If declined: shows no suggestions in the magnifying-glass router, it's a real bug.
Activity
applause-bot commentedon Oct 19, 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/a4d9605641ff8a8452d532b49c597a3cc5aa2b0c36e9b92bec9e7afe7f6095f4
melvin-bot commentedon Oct 19, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #103309
github-actions commentedon Oct 19, 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:
melvin-bot commentedon Oct 19, 2026
@JS00001 @QichenZhu you have been assigned to this deploy blocker because you reviewed the offending PR: #103309
melvin-bot commentedon Oct 19, 2026
@c3024 you have been assigned to this deploy blocker because you authored the offending PR: #103309
melvin-bot commentedon Oct 19, 2026
💬 A slack conversation has been started in #expensify-open-source
MelvinBot commentedon Oct 19, 2026
Recommendation: don't revert yet. First get the exact text the tester typed. I couldn't find a code defect. Add Rejected search filter for expenses and expense reports is the only PR that adds
declined:, and its autocomplete is wired the same way asbillable:.declinedas a key: autocompleteParser.peggy:114.yes/nofordeclined, sharing a case withbillable: useAutocompleteSuggestions.ts:548-557.declined:noanddeclined:yessuggested.Likely explanation (unverified): The router opened from Spend pre-fills the current query, such as
type:expense-report declined:yes(SearchRouter.tsx:141). After step 13, typingdeclined:there gives one of two results:...declined:yesdeclined:), nothing parses, so no suggestions appear.declined:noshows.billable:andreimbursable:behave the same way in both cases, so this would not be a regression.Next steps:
c3024: retest on 9.5.14-0 with an empty search input.declined:. The current test mocksparseForAutocomplete, so the parser never runs.I tried to reproduce this on web, but the test session didn't load, so I have no live result. I found no follow-up PR for this issue.
Next Steps: Reply with
@MelvinBot <your feedback>to refine this analysis.view run · no recording available
QichenZhu commentedon Oct 19, 2026
@MelvinBot I think this is expected since the keyword box only supports keywords. To use search syntax, you need to go to the search screen via the magnifying glass icon.
cc @JS00001 @c3024
MelvinBot commentedon Oct 19, 2026
Agreed,
QichenZhu. The code supports this. The inline keyword box on Spend has no autocomplete. Only the router opened by the magnifying glass suggests search syntax. So no suggestions in the keyword box is expected, and it isn't a regression from Add Rejected search filter for expenses and expense reports.TextInputwith no suggestion list. On submit,escapeKeywordwrapskey:valuetext in quotes, sodeclined:yesbecomes a literal keyword.billable:behaves the same way there.declinedshares a case withbillableand returns yes/no: useAutocompleteSuggestions.ts:548-557.Both inputs use the same placeholder, "Search for something...", which makes them easy to mix up.
If the tester confirms they typed into the keyword box, you can close this or remove the
DeployBlockerCashlabel. Ifdeclined:shows no suggestions in the magnifying-glass router, it's a real bug.view run
QichenZhu commentedon Oct 19, 2026
@Chandkia24 the test step means clicking the search icon 🔍 in the top-right corner.
Chandkia24 commentedon Oct 19, 2026
@QichenZhu declined: shows suggestions as expected in the magnifying-glass router
grgia commentedon Oct 20, 2026
@QichenZhu is this to be demoted or closed?
QichenZhu commentedon Oct 20, 2026
@grgia I think this can be closed since everything works as expected.
JS00001 commentedon Oct 20, 2026
yeah agreed, they are using the wrong searchbox