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
Rules - No error message when command is not supported for Restrict card spend rule #103862
Version Number: 9.5.8-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:#99624 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: Mac 26.5 / Chrome App Component: Workspace Settings
Action Performed:
Precondition:
Create a Control workspace.
Create Rules.
Go to staging.new.expensify.com
Go to workspace settings > Rules.
Click Add rule.
Click Restrict card spend.
Click Describe.
Enter "Flag expenses over $50" and click Next.
Expected Result:
Error message should appear when the command is not supported for Restrict card spend rule.
Actual Result:
No error message appears when the command is not supported for Restrict card spend rule.
The describe modal disappears as if the command is applied when nothing is applied.
👋 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.
Root cause (frontend): The backend picks the rule type from the description, not the open editor. "Flag expenses over $50" comes back as a successful Flag for review rule. DescribeRuleModal.tsx:83-94 only shows an error when generation fails, so any success closes the modal. The spend form ignores the returned fields, so nothing appears to change.
Recommendation: fix forward, revert as fallback. The open draft PR Keep the rule editor's form when Describe returns another rule type adds ruleType back to GeneratedRule. It shows the existing "isn't supported yet" error when the type doesn't match the editor. If it can't merge and be verified before the deploy, revert 99624.
Investigation details
Request path: The spend editor passes restrictCardSpend (SpendRulePageBase.tsx:477-486), and generateRule sends it (Rules.ts:417-446). Per discussion on 99624, the backend does not honour it yet.
No type check possible today: 99624 removed ruleType from GeneratedRule during review because nothing read it (GeneratedRule.ts:16-25).
Side effect:applyGeneratedRule (SpendRulePageBase.tsx:110-114) calls setDraftSpendRule, which replaces the whole draft (User.ts:1938-1940). Cards or merchants picked before using Describe may be cleared. Saved rules are not affected.
Caveat for the fix: 103809 treats a missing ruleType as a mismatch. Before merging, confirm on staging that the response includes ruleType. For example, Flag for review + "Flag meals over $500" should still fill the form.
Activity
applause-bot commentedon Oct 13, 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/86fd2e7910a1ead77b4b1182d5e1a2659b12c6b95df51672ba0df4c1b4c9b788
melvin-bot commentedon Oct 13, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #99624
melvin-bot commentedon Oct 13, 2026
@luacmartins @JS00001 @Krishna2323 you have been assigned to this deploy blocker because you reviewed the offending PR: #99624
github-actions commentedon Oct 13, 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 13, 2026
@rushatgabhane you have been assigned to this deploy blocker because you authored the offending PR: #99624
melvin-bot commentedon Oct 13, 2026
💬 A slack conversation has been started in #expensify-open-source
MelvinBot commentedon Oct 13, 2026
Deploy Blocker Analysis
Causing PR: AI-assisted rule creation (high confidence). It added the Describe button and modal to the Restrict card spend editor, and it is in Deploy Checklist: New Expensify 2026-10-13.
Root cause (frontend): The backend picks the rule type from the description, not the open editor. "Flag expenses over $50" comes back as a successful Flag for review rule. DescribeRuleModal.tsx:83-94 only shows an error when generation fails, so any success closes the modal. The spend form ignores the returned fields, so nothing appears to change.
Recommendation: fix forward, revert as fallback. The open draft PR Keep the rule editor's form when Describe returns another rule type adds
ruleTypeback toGeneratedRule. It shows the existing "isn't supported yet" error when the type doesn't match the editor. If it can't merge and be verified before the deploy, revert 99624.Investigation details
restrictCardSpend(SpendRulePageBase.tsx:477-486), andgenerateRulesends it (Rules.ts:417-446). Per discussion on 99624, the backend does not honour it yet.ruleTypefromGeneratedRuleduring review because nothing read it (GeneratedRule.ts:16-25).applyGeneratedRule(SpendRulePageBase.tsx:110-114) callssetDraftSpendRule, which replaces the whole draft (User.ts:1938-1940). Cards or merchants picked before using Describe may be cleared. Saved rules are not affected.ruleTypeas a mismatch. Before merging, confirm on staging that the response includesruleType. For example, Flag for review + "Flag meals over $500" should still fill the form.view run
rushatgabhane commentedon Oct 13, 2026
not a frontend bug
kavimuru commentedon Oct 13, 2026
Describe button is not showing with "describerule" disabled.
Screenrecorder-2026-10-13-20-28-13-84.mp4