Trying to create a Lightning button to close a case and I am getting this error

Uncaught Unable to find action 'getCaseStatusPickList' on the controller of c:Button Callback failed: apex://closeCaseApex/ACTION$getCase

After adding in the getCaseStatusPickList method I am getting another error:

Uncaught Assertion Failed!: run() cannot be called on a server action. Use $A.enqueueAction() instead. : false

Below is the updated code


<aura:component controller="closeCaseApex" implements="flexipage:availableForAllPageTypes,force:hasRecordId" access="global">
<aura:attribute name="record" type="Case"/>
<aura:attribute name="caseStatus" type="String"/>
<aura:attribute name="caseId" type="String" default="{!v.recordId}"/>

<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>

<button class="slds-button slds-button--neutral newsbutton" style="float:right"  onclick="{!c.closeCases}">Close Case</button>


public class closeCaseApex{
public static Case getCase(Id caseId){
    return ([Select Id, Status From Case Where id=:caseId]);
public static Case closeCases(Case caseA){
   update caseA;
   return caseA;
public static List<Case> getCaseStatusPickList(String caseId){
   return([Select Status From Case]);


getStatusPickListValue : function(component) {

    var action = component.get("c.getCaseStatusPickList");
    action.setCallback(this, function(response) {
        var state = response.getState();
        var hasImg = false;
        if (component.isValid() && state === "SUCCESS") {

            var statusPickList = response.getReturnValue();
            component.set("v.lstCaseStatus", statusPickList);

            console.log('status picklist ::', component.get("v.lstCaseStatus"));



doInit : function(component, event, helper) {
component.set("v.isError", false)
component.set("v.showEditView", false);
component.set("v.errorMsg", "");

var action = component.get("c.getCase");
    caseId : component.get("v.caseId")

action.setCallback(this, function(a) {
    if (a.getState() === "SUCCESS") {
        component.set("v.record", a.getReturnValue());


closeCase : function (component, event, helper) {
var action = component.get("c.closeCases");
var Status = component.get("v.record.Status") //get value of field
//console.log("Status: " Status);
//action.setParams({Status : Closed});
var caseId = component.get("v.record").Id;
action.setParams({caseA: {Id: caseId, Status : "Closed"}});
  • 1
    where is the backend method getCaseStatusPickList ? Commented Jan 3, 2019 at 0:39
  • I need another method in my apex class for example public static Case getCaseStatus(){} which queries for the status of the case. Is that correct? Commented Jan 3, 2019 at 0:48

1 Answer 1


You need to create a method called "getCaseStatusPickList" in your Apex Class. I recommend you to check your function names at ButtonController.js because you wrote "closeCase" but you are calling for "closeCases" at Button.cmp


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .