Have you tried to resolve this issue yourself first?
Bug Description
Engine: sfge (Salesforce Graph Engine) · Rule: ApexFlsViolation (DevPreview) · Selector: --rule-selector sfge
ApexEnumValue.apply implements only name(), ordinal() and (when indeterminate) equals(), then falls through to throw new UnimplementedMethodException(this, vertex) at ApexEnumValue.java:123.
toString() is universal in Apex — every enum inherits it — so any path that calls it on an enum value aborts.
Schema.DisplayType dt = Account.Name.getDescribe().getType();
a.Description = dt.toString();
Output / Logs
UnimplementedMethodException: ApexEnumValue:toString, vertex=MethodCallExpressionVertex{fullMethodName=dt.toString, ...}:
com.salesforce.graph.symbols.apex.ApexEnumValue.apply(ApexEnumValue.java:123);
com.salesforce.graph.symbols.PathScopeVisitor.handleApexValueMethod(PathScopeVisitor.java:1487);
com.salesforce.graph.symbols.PathScopeVisitor.afterVisit(PathScopeVisitor.java:1242); ...
Steps To Reproduce
- Create an empty SFDX project (
sfdx-project.json with a single force-app package directory).
- Add
force-app/main/default/classes/EnumToString.cls with the class shown below, plus a standard EnumToString.cls-meta.xml (apiVersion 62.0).
- Add
code-analyzer.yml:
engines:
sfge:
java_thread_timeout: 900000
java_thread_count: 4
- Run:
sf code-analyzer run --rule-selector sfge --workspace . --config-file code-analyzer.yml
- The run reports an
InternalExecutionError for the entry point instead of analysing it. That entry point yields no ApexFlsViolation findings at all, and nothing in the summary indicates coverage was lost.
public with sharing class EnumToString {
@AuraEnabled
public static void run() {
Schema.DisplayType dt = Account.Name.getDescribe().getType();
Account a = new Account();
a.Description = dt.toString();
insert a;
}
}
Expected Behavior
toString() on an enum should resolve like name() does — returning the value name when determinate, and an indeterminate string otherwise. Suggested fix: handle toString alongside METHOD_NAME in ApexEnumValue.apply, and add it to INDETERMINANT_VALUE_PROVIDERS.
More generally, an unmodelled method on a known value type should degrade to an indeterminate value rather than abort the entry point.
Operating System
macOS 26.5.2
Salesforce CLI Version
@salesforce/cli/2.147.7 darwin-arm64 node-v24.5.0
Code Analyzer Plugin (code-analyzer) Version
code-analyzer 5.15.0
Node Version
v24.5.0
Java Version
openjdk version "11.0.32" 2026-07-21
Python Version
N/A
Additional Context (Screenshots, Files, etc)
In our codebase this accounts for 8 occurrences across 4 distinct @AuraEnabled entry points — the highest count of any single unimplemented-method signature we hit.
Same class of gap as #1510, #1044 and #1003 (all on ApexStringValue), which were closed in the 2026-06-30 pre-v5 sweep.
Workaround
Replace enumValue.toString() with enumValue.name(), which sfge does model. Semantically equivalent for standard enums.
Urgency
Moderate
Have you tried to resolve this issue yourself first?
Bug Description
Engine:
sfge(Salesforce Graph Engine) · Rule:ApexFlsViolation(DevPreview) · Selector:--rule-selector sfgeApexEnumValue.applyimplements onlyname(),ordinal()and (when indeterminate)equals(), then falls through tothrow new UnimplementedMethodException(this, vertex)atApexEnumValue.java:123.toString()is universal in Apex — every enum inherits it — so any path that calls it on an enum value aborts.Output / Logs
UnimplementedMethodException: ApexEnumValue:toString, vertex=MethodCallExpressionVertex{fullMethodName=dt.toString, ...}: com.salesforce.graph.symbols.apex.ApexEnumValue.apply(ApexEnumValue.java:123); com.salesforce.graph.symbols.PathScopeVisitor.handleApexValueMethod(PathScopeVisitor.java:1487); com.salesforce.graph.symbols.PathScopeVisitor.afterVisit(PathScopeVisitor.java:1242); ...Steps To Reproduce
sfdx-project.jsonwith a singleforce-apppackage directory).force-app/main/default/classes/EnumToString.clswith the class shown below, plus a standardEnumToString.cls-meta.xml(apiVersion 62.0).code-analyzer.yml:InternalExecutionErrorfor the entry point instead of analysing it. That entry point yields noApexFlsViolationfindings at all, and nothing in the summary indicates coverage was lost.Expected Behavior
toString()on an enum should resolve likename()does — returning the value name when determinate, and an indeterminate string otherwise. Suggested fix: handletoStringalongsideMETHOD_NAMEinApexEnumValue.apply, and add it toINDETERMINANT_VALUE_PROVIDERS.More generally, an unmodelled method on a known value type should degrade to an indeterminate value rather than abort the entry point.
Operating System
macOS 26.5.2
Salesforce CLI Version
@salesforce/cli/2.147.7 darwin-arm64 node-v24.5.0
Code Analyzer Plugin (code-analyzer) Version
code-analyzer 5.15.0
Node Version
v24.5.0
Java Version
openjdk version "11.0.32" 2026-07-21
Python Version
N/A
Additional Context (Screenshots, Files, etc)
In our codebase this accounts for 8 occurrences across 4 distinct
@AuraEnabledentry points — the highest count of any single unimplemented-method signature we hit.Same class of gap as #1510, #1044 and #1003 (all on
ApexStringValue), which were closed in the 2026-06-30 pre-v5 sweep.Workaround
Replace
enumValue.toString()withenumValue.name(), which sfge does model. Semantically equivalent for standard enums.Urgency
Moderate