I am temporarily storing changes to records in a Map by Id in my Lightning component


<aura:component controller="MyController">
     <aura:attribute name="changes" type="Map" default="{}" access="private" /> 

JS Controller Code:

var changes = cmp.get("v.changes");
changes[recordId] = {
   sobjectType: 'NAMESPACE__MyCustomRecord__c',
   Id: recordId,
cmp.set("v.changes", changes);

var action = cmp.get("c.save");  
        changes: cmp.get("v.changes")

Apex Controller:

public static void save(Map<Id, SObject> changes) {
    update changes.values();

When I invoke this the Apex save() method throws an

An internal server error has occurred Error ID: 1757078119-115612 (1843984413) Error


1 Answer 1


I just had to change my Apex method to not work on generic SObject but a concrete type Account.

public static void save(Map<Id, Account> changes) {
    update changes.values();

After that everything worked.

  • 2
    Whenever I run into that I just JSON.stringify and deserialize in the apex method
    – Eric
    Nov 24, 2017 at 16:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.