Customer FAQ

Operational answers for teams running ControlLayer. Prospect-level questions are on the main FAQ.

I edited the enforcement setting manually and my change disappeared. Why?

By design. The enforcement settings are computed from the set of active windows and reconciled every engine cycle (~5 minutes). Manual edits are drift and get corrected. If you need a bypass, open a window - that's the audited path.

Why didn't my governed validation rule block anything during our Apex test run?

Platform behavior: formula-based checks read settings from a per-transaction snapshot that test isolation hides, and the platform skips the formula entirely when the setting can't resolve. Net effect: governed validation rules and record-triggered flows are non-blocking inside Apex tests, while trigger governance (Apex-based) remains enforced. Most teams consider this a feature - test suites never fight governed rules - but it's worth knowing before it surprises you in a deploy validation.

My scheduled window's start time passed but it activated a couple of minutes later. Is that normal?

Yes. The engine runs on a five-minute cycle, so scheduled transitions land on the first pass after their time - worst case about five minutes. Immediate (no start time) windows don't wait for the engine; they activate at submission.

Why was my window submission blocked for having too many objects?

Two guardrails apply: your org's objects-per-window limit (default 5, configurable), and a hard 255-character platform ceiling on the enforcement value at any scope. ControlLayer refuses to truncate - a submission that would overflow is blocked. Split the work into smaller sequential windows; one object at a time is the recommended pattern.

Can I edit a window after it activates?

The identity of a window - category, level, target, objects - is immutable after creation; the engine's guarantees depend on it. To change scope or coverage, deactivate the window and create a new one. That's deliberate: each window is one auditable fact.

What does an object's label showing an old name in history mean?

Windows freeze the object's label at creation time on purpose. If an object is renamed later, historical windows still show what it was called when the bypass ran - that's the audit-correct behavior. The API name is what enforcement matches on.

A window is in Error status. What do I do?

Open the record - the history panel shows what failed. The engine already retried up to your configured ceiling. Resolve the underlying cause, then use the record's admin actions to retry or deactivate. Error windows are surfaced on the dashboard until resolved; see Engine health.

Does deleting a window remove its history?

Windows aren't deleted in normal operation - they close into terminal statuses (Expired or Deactivated) and remain as audit history. Deletion isn't part of any workflow the product offers.

Case sensitivity - does the object token have to match exactly?

Yes, matching is case-sensitive. ControlLayer writes exact API names from Salesforce's entity registry, so use the exact API name (e.g. ;Account;, ;My_Object__c;) in your formulas. The engine's reconciliation also corrects case drift in enforcement values.