4

Two odd issues:

  1. Last night, I was unable to add a newly created Lightning Component via the Lightning Page Builder. I also re-saved an existing component and it disappeared from the list of available Lightning Components. The save did not remove the "implements:XXXXXXX" which should make it available to the page builder.

  2. This morning, I attempted to trouble shoot and found that I am unable to save a few of my existing lightning components and I get the following error:

    Failed to save undefined: No Converter or MultiConverter found for class java.util.ArrayList to class java.lang.String: Source

    If I comment out referenced some of the variables, I can get the components to save, but they were working last night.

Here is the component:

<aura:component controller="CRS_OutcomeManagement_Controller" implements="flexipage:availableForAllPageTypes,force:hasRecordId,force:hasSObjectName" >

<aura:attribute name="EAOutcomes" access="public" type="Service_Usage_Outcome__c[]"/>
<aura:attribute name="OtherOutcomes" access="public" type="Service_Usage_Outcome__c[]"/>
<aura:attribute name="chosenOutcome" access="public" type="Service_Usage_Outcome__c" default="{'sobjectType' : 'Service_Usage_Outcome__c'}"/>

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

<c:CRS_Outcomes_Table Outcomes="{!v.EAOutcomes}" outcomeType="EA" TableCaption="Early Adopter Outcomes" chosenOutcome="{!v.chosenOutcome}"/>
<c:CRS_Outcomes_Table Outcomes="{!v.OtherOutcomes}" outcomeType="Other" TableCaption="Outcomes from other Service Usages" chosenOutcome="{!v.chosenOutcome}"/>


<div class="{!(and(empty(v.EAOutcomes), empty(v.OtherOutcomes))) ? 'slds-align-absolute-center slds-m-top--x-large' : 'slds-hide'}">
    <p>This Person has had no Outcomes recorded yet. If they have open Service Usage records of the appropriate type, please use the "New Outcome" button.</p>
</div>

<aura:if isTrue="{!v.chosenOutcome.Id != null}">
    <c:CRS_Outcome_SecondaryFields outcome="{!v.chosenOutcome}"/>
</aura:if>

<!--
If I put this inside the If above, the component stops refreshing after 
the 2nd or third change of chosenOutcome.Id-->

<aura:if isTrue="{!v.chosenOutcome.RecordType.Name == 'EARLYADOPTER'}">
    <c:CRS_Outcome_Actions outcomeId="{!v.chosenOutcome.Id}" CRSProfile="{!v.recordId}" />
</aura:if>

If I comment out references to "chosenOutcome" in the code (I can keep the attribute in place), then the component will save.

Was a patch released last night?

  • Winter'17 .12 patch went out last night and I have forwarded this post to the teams that might have impacted this - first I have heard of the problem so far. Have you opened a support case on this already so I can point the teams in question at it? – Doug Chasman Nov 2 '16 at 12:20
  • @DougChasman - I hadn't yet, as I've had difficulty in the past with Salesforce cases (we're not on Developer Support) and have reverted to the Developer boards as a primary recourse. I have now created a case with number 15032579. It should give access to log-in to our sandbox, etc. – Bigears Nov 2 '16 at 12:45
  • @DougChasman - Support have closed the case as we don't have developer support. Just in case it disappears off any lists. – Bigears Nov 2 '16 at 16:23
  • 1
    I am sorry about my company's policy about cases (grrrrr - and yes I have complained on many occasions that this makes no sense - a bug is a bug I don't care where it gets reported) - the bug that resulted from this is W-3446814 and was an unversioned change to lighting:card. I have been told the fix is going out in an emergency release to all instances today. – Doug Chasman Nov 3 '16 at 15:00
6

We hit this error this morning and tracked the problem down to our use of the lightning:card component. The title attribute changed from Component[] to String. We were using the title attribute as a facet using aura:set. The error is saying that the component array cannot be converted to a string. We removed the facet and set the title attribute as a string and the problem went away.

This may have changed on other components as well. The error is propagated up so if you try to compile any components or the app containing the problem component, you will get the error.

  • Aha! That appears to be it. I wouldn't have found that myself. Looks like a potential new bug? – Bigears Nov 2 '16 at 17:04
  • 1
    I'm glad that helped. I will be opening a ticket with Salesforce. The title of the card should be clickable. I consider this a bug since it doesn't match the original SLDS design. The fact that it changed so suddenly has me concerned about using Lighting Components in production. – Stuart Greenberg Nov 2 '16 at 17:12
  • 2
    Us too - This is our first Lightning Components project with a go-live date in March. However, we seem to keep finding things changing as we're using them. – Bigears Nov 2 '16 at 17:16
  • I found that this change isn't in our Production org. I'm hoping we can deploy to Production with the attribute set to a string instead of a component array. Otherwise we're in a Catch 22 situation. – Stuart Greenberg Nov 3 '16 at 13:11
4

Just wanted to add to Stuart's answer above, but I can't comment yet :(

  • Not only did the Title attribute change to a String from Component[], it's also required now.
  • The Footer attribute was also changed from a Component[] to a String.

I'm 2.5 weeks away from a major deployment, and this kind of change is UNACCEPTABLE for a patch release. It broke several critical components because I had put an icon in the title to match the standard SF look and feel.

4

The bug that resulted from this is W-3446814 and was an unversioned change to lightning:card. I have been told the fix is going out in an emergency release to all instances today.

I have already asked to be directly involved in the group that will be implementing a number of changes in our human process that was the culprit here. The automated versioning event/api shape for components tests detected and reported this long before it made it to production but were overridden by the team that owns lightning:card. We will be making sure that cannot happen. The correct way to handle this would have been to leverage our component versioning capabilities of the platform.

  • 1
    So glad you're around this community. We all win because of it. – Adrian Larson Nov 3 '16 at 15:14

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.