In Allowed Values definition, we should pass list of values.
Could you please confirm your logic returns list of String or share Custom object by hiding sensitive information along with Form field details if possible.
Your code is calling mapAttribute.values()— that returns the values of the top-level attribute map, which in this case is a single entry: the List object stored under the key area.
So options ends up as: [[ALPHA, OPI, B, C, GAMA, D]] — a list containing one List, not a flat list of strings. The dropdown then renders only the second element of that outer list, which happens to be the inner List object rendered as its first visible string OPI.
use the below code and try it
import java.util.ArrayList;
import java.util.List;
import sailpoint.object.Custom;
List options = new ArrayList();
Custom customObject = context.getObjectByName(Custom.class, "Custom Area");
if (customObject != null) {
List areaList = (List) customObject.get("area");
if (areaList != null) {
options = areaList;
}
}
return options;