KamoCRM

Stop iterating ServiceType.values() against the resolved catalog

FixSecurityService
Shipped
9 ஆகஸ்ட், 2026 அன்று 1:46 AM UTC
Author
Kamo
Commit
698ae2c

resolveAll() omits the deprecated aliases that share an id with a live app (DOC_MANAGER/DOCS, AI_CHAT/AI_SUPPORT), because those have no catalog row of their own. Every consumer here looped over ServiceType.values() and dereferenced catalog.get(st), so those two constants returned null — an NPE on the account Apps page, the /available endpoint, the platform catalog tab, and org auto-provisioning. They iterate the resolved map instead, which cannot produce a key the map has no entry for. serializeFeatures additionally tolerates a null entry rather than throwing, and now does one lookup instead of five.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing