Most Salesforce Problems Are Not Bugs

The Strangest Realization in the Ecosystem

One of the strangest realizations you will have after working on enough Salesforce projects is this:

Most problems people report are not bugs.

They are systems behaving exactly as designed—just not as imagined.

We have all seen the ticket. It comes in with high priority, marked as a "Critical Defect."

“The system is broken. It worked yesterday, but today I can't save the record.”

It probably did work yesterday. And technically, it is still working today. The platform hasn't failed. It is simply enforcing a rule that everyone forgot existed.

Salesforce doesn’t break randomly. It executes rules. And it executes them very literally.

The Literal Machine

Salesforce is a deterministic engine. It doesn't care about your business intent; it cares about your metadata configuration.

In most Salesforce implementations, nobody writes down all the rules in one place. The logic is scattered across:

  • Flows (Automation)
  • Validation Rules (Data Integrity)
  • Permission Sets (Security)
  • Record Types (UI/Process)
  • Sharing Models (Visibility)
  • Default Values (Data Entry)

Together, these components form a complex system. When a user performs an action, the system runs through this entire checklist. If the result is "Access Denied" or "Field Update Blocked," the system isn't broken. It is successful. It successfully blocked an action based on the criteria provided.

QA’s Awkward Discovery

As testers, we often end up discovering uncomfortable truths during triage. We realize that the "bug" is actually a feature working overtime.

We find that:

  • Two "correct" behaviors are colliding. (e.g., A Validation Rule correctly blocks data that a Flow correctly tries to write).
  • A safety rule acts as a barrier. (e.g., A Duplicate Rule prevents the integration from running).
  • An edge case is actually the main case. (e.g., The user needs to edit that closed Opportunity).

At that point, the question stops being "Is this a bug?" and becomes the much harder question:

“What did we actually build?”

Intent vs. Configuration

Salesforce is very honest. It tells you exactly when something is blocked, when access is denied, and when automation fires.

But it doesn’t explain intent.

Intent lives in people’s heads (or poorly updated Confluence pages). Configuration lives in metadata. QA lives in the gap between them.

The discomfort comes because "Not a Bug" is rarely a satisfying answer to a stakeholder.

  • The Business wants it fixed and faster.
  • The Developer wants clear rules and deterministic behavior.
  • The System gives you exactly what you configured—nothing more, nothing less.

The Real QA Value: Decoding the System

Great Salesforce QA doesn’t just find code defects. We translate.

We translate Expectation into Behavior.
We translate Complaint into Rule.
We translate Confusion into Decision.

Sometimes the outcome of this translation is a bug ticket (the config is wrong). Sometimes it is a Change Request (the requirement was wrong). And sometimes, it is a hard conversation about why the business process doesn't match the system architecture.

A Small Mindset Shift

If you want to resolve tickets faster, stop asking "Is this broken?"

Start asking:

“Which rule is winning here?”

When a record fails to save, which Validation Rule won? When a field value changes unexpectedly, which Flow won the race?

That question alone reduces the noise. It clarifies ownership. It exposes design gaps. And suddenly, the "bug" makes sense again.

QA Takeaways

  1. Trace the Winner: Use the Debug Logs to find the specific rule that triggered the failure. Do not guess.
  2. Challenge the Requirement: If the system is working as designed but the user is unhappy, the requirement was likely imprecise. Document the gap.
  3. Check the "Hidden" Logic: Always check Default Workflow Users, Automated Process User context, and system-specific settings (like Duplicate Rules) that act silently.

Final Thought

Salesforce problems are rarely technical mysteries. They are usually social ones disguised as technical ones. They come from unspoken assumptions, layered decisions, and evolving business logic colliding in a single transaction.

QA doesn’t just test software. QA decodes systems.

What is the most frustrating "Working as Designed" issue you've ever had to explain to a client?

Subscribe to Salesforce Tester

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe