[Guide] incident.processing-rules documents pre-#290 institution matching (key->name) — code is key-to-key #29
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type: Documentation —
incident.processing-rulesdescribes pre-#290 behaviour.Problem
The module documents institution matching as key → name resolution, compared against the ATM's institution name. That is how it worked before #290/#232. The code now compares KEY to KEY and never resolves a name.
Current code (
IncidentAutoCreationService.findApplicableRule, and the same shape inprocessConfigurableClosingRules):institutionKeyServiceis still injected but is not used for rule matching.Why this matters (it cost real time today)
While investigating incident#241 (PBNC EMV fallback reported twice by a customer), the Guide's gotcha —
— led me to conclude the customer's rule was silently falling through and that #232 was the root cause. Both were wrong. The rule is firing correctly in production (verified in Loki:
SUPPRESS rule 'EMV Fallback Suppression for Peoples Bank ONLY' matched for APPLICATION_ERROR_CARD on ATM NC000936, institution=PBNC, as recently as this morning). I posted that wrong conclusion onto a customer-facing ticket and had to retract it.The Guide is meant to stop exactly this. Here it actively caused it.
Stale locations
claude.mdinstitutionas a KEY → institution NAME, then compares to ATM's institution name; unresolved key falls back to raw value. Key-vs-name mismatch = rule silently falls through to global."internal.mdinternal.mdinstitutionKeyService.findByKey(...).getInstitutionName()— that call no longer exists in the matcherarchitect.mdclaude.md:83("Do NOT assume ruleinstitutionis a display name — it's stored as the institution KEY") is still correct and should stay.Fix
Rewrite those four to describe key-to-key matching, and keep the historical note that pre-#290 name-based matching was the old defect — the "silently falls through to global" fallback behaviour is still real when a rule's key genuinely does not match the ATM's key, so that warning should be preserved, just for the right reason.