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
[$175] Filters - Vendor option is missing in filters #104176
Preconditions:
User is an admin of a workspace connected to QBO with Export company card expenses set to Credit card
Workspace has at least one non-reimbursable expense with a vendor assigned and one without
On current main, the expense filter list has no VENDOR entry. TAG is followed directly by TAX_RATE in src/hooks/useAdvancedSearchFilters.ts:39-41. The QBO + Credit card setup is not the cause. That workspace passes the vendor feature gate in src/libs/PolicyUtils/vendor.ts:20-23, which is why the Vendor column still appears.
What changes do you think we should make in order to solve the problem?
No new fix is needed on this issue. The work is already in progress:
Bring the filter back by reverting the revert, combined with the picker fix in List workspace vendors from connections in the Search Vendor filter. That PR is open but has merge conflicts. It was branched before the revert, so it also needs to re-apply the original filter PR.
When the filter is re-landed, gate it with useIsVendorColumnAvailable so the Vendor column and the Vendor filter always appear together.
Until then, hold or close this issue, and mark the regression test case as blocked on the PR in step 1.
Investigation details
CONST.SEARCH.SYNTAX_FILTER_KEYS.VENDOR still exists (src/CONST/index.ts:8326). Only violation messages use it now, not Search filters.
The search parser, the advanced filters form type and SearchQueryUtils.ts have no vendor support. VendorSelector.tsx and useLoadSearchVendorData.ts were deleted by the revert.
The revert's own QA step says "Verify there is no Vendor filter", so the current behavior is what that PR intended.
Next Steps for Contributor+ team: To accept:@MelvinBot implement [this](https://github.com/Expensify/App/issues/104176) to create a draft PR. To refine:@MelvinBot <your feedback> To reject: Explain why you are rejecting Melvin's proposal.
VERDICT: POST
ROOT_CAUSE_ONELINER: CONST.SEARCH.SYNTAX_FILTER_KEYS.VENDOR is absent from both FILTER_VIEW_MAP in SearchUIUtils.ts and the typeFiltersKeys[EXPENSE] section of useAdvancedSearchFilters.ts, so the vendor option is never added to the filter list.
PROPOSAL_TYPE: FIRST
AUTOPOST_SAFE: YES
Please re-state the problem that we are trying to solve in this issue.
The "Vendor" option is missing from the filter list in Search > Expenses > Filters for a workspace connected to QuickBooks Online with credit card export enabled.
What is the root cause of that problem?
The Vendor filter was originally added in PR #101309 but was intentionally reverted in PR #103211 to unblock staging due to Issue #103145 (where synced vendor lists showed empty for non-admin members).
Consequently, VENDOR is currently omitted from useAdvancedSearchFilters.ts:39-41 (where TAG is followed directly by TAX_RATE) and SearchUIUtils.ts. The regression test case run by QA expected the Vendor filter before PR #103151 (which fixes the connection vendor list resolution) has landed.
What changes do you think we should make in order to solve the problem?
This issue should be held for open PR #103151 ("List workspace vendors from connections in the Search Vendor filter"), which re-introduces the Vendor filter alongside the proper connections vendor loader.
If this issue is addressed directly in this ticket:
Re-add CONST.SEARCH.SYNTAX_FILTER_KEYS.VENDOR to typeFiltersKeys[CONST.SEARCH.DATA_TYPES.EXPENSE] in src/hooks/useAdvancedSearchFilters.ts.
Map CONST.SEARCH.SYNTAX_FILTER_KEYS.VENDOR to VendorSelector in src/libs/SearchUIUtils.ts.
Gate its visibility with useIsVendorColumnAvailable so the filter only appears on workspaces where the Vendor column is enabled.
What alternative solutions did you explore? (Optional)
Re-introducing the filter without connection vendor resolution from PR #103151 would re-introduce regression #103145.
Please re-state the problem that we are trying to solve in this issue.
The "Vendor" option is missing from the filter list in Search > Expenses for workspaces with accounting connections (such as QBO) where non-reimbursable expenses have vendors assigned.
What is the root cause of that problem?
In src/libs/SearchUIUtils.ts and src/pages/Search/SearchAdvancedFiltersPage.tsx, the search filter configuration defines the visible filter fields via FILTER_VIEW_MAP. The key CONST.SEARCH.SYNTAX_FILTER_KEYS.VENDOR is missing from the filter list mapping for the EXPENSES search type, preventing users from filtering expenses by vendor even when vendor data exists on transactions.
What changes do you think we should make in order to solve the problem?
In src/libs/SearchUIUtils.ts, include CONST.SEARCH.SYNTAX_FILTER_KEYS.VENDOR in FILTER_VIEW_MAP and ensure getFilterMenuItems returns the Vendor option when the search type is EXPENSES.
Ensure the Vendor filter navigates to the vendor selection page (ROUTES.SEARCH_ADVANCED_FILTERS_VENDOR.getRoute()) and serializes to the vendor: search query parameter.
What alternative solutions did you explore? (Optional)
Relying solely on free-text search in the search bar, which does not provide structured vendor autocompletion or exact matching.
Tests
Log in as an admin of a workspace connected to QBO with non-reimbursable expenses.
Navigate to Search > Expenses.
Click "Filters".
Verify "Vendor" appears in the filter list options.
Select a vendor and verify the search results are filtered correctly by vendor:"...".
Activity
applause-bot commentedon Oct 16, 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/dc6da9e6b1d55f79410b0fb8fc6b353786b8c4128294e3d8b1095d2340dc34ba
MelvinBot commentedon Oct 16, 2026
Proposal
What is the root cause of that problem?
This is not a code regression. The Vendor filter was removed on purpose before it reached production, and the regression test case was not updated.
On current
main, the expense filter list has noVENDORentry.TAGis followed directly byTAX_RATEinsrc/hooks/useAdvancedSearchFilters.ts:39-41. The QBO + Credit card setup is not the cause. That workspace passes the vendor feature gate insrc/libs/PolicyUtils/vendor.ts:20-23, which is why the Vendor column still appears.What changes do you think we should make in order to solve the problem?
No new fix is needed on this issue. The work is already in progress:
useIsVendorColumnAvailableso the Vendor column and the Vendor filter always appear together.Investigation details
CONST.SEARCH.SYNTAX_FILTER_KEYS.VENDORstill exists (src/CONST/index.ts:8326). Only violation messages use it now, not Search filters.SearchQueryUtils.tshave no vendor support.VendorSelector.tsxanduseLoadSearchVendorData.tswere deleted by the revert.Related open issue: [$175] Spend - Unable to sort expenses by Vendor is about the Vendor column, not the filter.
Next Steps for Contributor+ team:
To accept:
@MelvinBot implement [this](https://github.com/Expensify/App/issues/104176)to create a draft PR.To refine:
@MelvinBot <your feedback>To reject: Explain why you are rejecting Melvin's proposal.
view run
j3ffffff commentedon Oct 16, 2026
VERDICT: POST
ROOT_CAUSE_ONELINER:
CONST.SEARCH.SYNTAX_FILTER_KEYS.VENDORis absent from bothFILTER_VIEW_MAPinSearchUIUtils.tsand thetypeFiltersKeys[EXPENSE]section ofuseAdvancedSearchFilters.ts, so the vendor option is never added to the filter list.PROPOSAL_TYPE: FIRST
AUTOPOST_SAFE: YES
melvin-bot commentedon Oct 16, 2026
Triggered auto assignment to Contributor-plus team member for initial proposal review - @suneox (
External)[-]Filters - Vendor option is missing in filters[/-][+][$175] Filters - Vendor option is missing in filters[/+]melvin-bot commentedon Oct 16, 2026
Job added to Upwork: https://www.upwork.com/jobs/~022110885193812397155
camesenin commentedon Oct 16, 2026
Proposal
Please re-state the problem that we are trying to solve in this issue.
The "Vendor" option is missing from the filter list in Search > Expenses > Filters for a workspace connected to QuickBooks Online with credit card export enabled.
What is the root cause of that problem?
The Vendor filter was originally added in PR #101309 but was intentionally reverted in PR #103211 to unblock staging due to Issue #103145 (where synced vendor lists showed empty for non-admin members).
Consequently,
VENDORis currently omitted fromuseAdvancedSearchFilters.ts:39-41(whereTAGis followed directly byTAX_RATE) andSearchUIUtils.ts. The regression test case run by QA expected the Vendor filter before PR #103151 (which fixes the connection vendor list resolution) has landed.What changes do you think we should make in order to solve the problem?
This issue should be held for open PR #103151 ("List workspace vendors from connections in the Search Vendor filter"), which re-introduces the Vendor filter alongside the proper connections vendor loader.
If this issue is addressed directly in this ticket:
CONST.SEARCH.SYNTAX_FILTER_KEYS.VENDORtotypeFiltersKeys[CONST.SEARCH.DATA_TYPES.EXPENSE]insrc/hooks/useAdvancedSearchFilters.ts.CONST.SEARCH.SYNTAX_FILTER_KEYS.VENDORtoVendorSelectorinsrc/libs/SearchUIUtils.ts.useIsVendorColumnAvailableso the filter only appears on workspaces where the Vendor column is enabled.What alternative solutions did you explore? (Optional)
Re-introducing the filter without connection vendor resolution from PR #103151 would re-introduce regression #103145.
Contributor details
Your Expensify account email: camesenin@gmail.com
Upwork Profile Link: https://www.upwork.com/freelancers/~0170d6b02e9440e604
melvin-bot commentedon Oct 16, 2026
✅ Contributor details stored successfully. Thank you for contributing to Expensify!
jloa-dev commentedon Oct 19, 2026
Contributor details
Your Expensify account email: jloa.dev@gmail.com
Upwork Profile Link: https://www.upwork.com/freelancers/~01584ea0bc208b0a94
Proposal
Please re-state the problem that we are trying to solve in this issue.
The "Vendor" option is missing from the filter list in Search > Expenses for workspaces with accounting connections (such as QBO) where non-reimbursable expenses have vendors assigned.
What is the root cause of that problem?
In
src/libs/SearchUIUtils.tsandsrc/pages/Search/SearchAdvancedFiltersPage.tsx, the search filter configuration defines the visible filter fields viaFILTER_VIEW_MAP. The keyCONST.SEARCH.SYNTAX_FILTER_KEYS.VENDORis missing from the filter list mapping for theEXPENSESsearch type, preventing users from filtering expenses by vendor even when vendor data exists on transactions.What changes do you think we should make in order to solve the problem?
src/libs/SearchUIUtils.ts, includeCONST.SEARCH.SYNTAX_FILTER_KEYS.VENDORinFILTER_VIEW_MAPand ensuregetFilterMenuItemsreturns the Vendor option when the search type isEXPENSES.ROUTES.SEARCH_ADVANCED_FILTERS_VENDOR.getRoute()) and serializes to thevendor:search query parameter.What alternative solutions did you explore? (Optional)
Relying solely on free-text search in the search bar, which does not provide structured vendor autocompletion or exact matching.
Tests
vendor:"...".melvin-bot commentedon Oct 19, 2026
✅ Contributor details stored successfully. Thank you for contributing to Expensify!
suneox commentedon Oct 19, 2026
The PR that adds the Vendor filter is coming back in #104351, so let's put this issue on hold.