Lightning-Flow-Scanner / lightning-flow-scanner-sfdx

A Salesforce CLI Plugin designed to pinpoint deviations from Industry Best Practices in Salesforce Flows, ensuring standards of business automation excellence.
https://www.npmjs.com/package/lightning-flow-scanner
GNU Affero General Public License v3.0
112 stars 11 forks source link

"error is not a constructor" -- received as a response from sf flow scan #83

Closed jorgesolebur closed 6 months ago

jorgesolebur commented 9 months ago

I am using the last sf scan flow 2.16.0

When running sf flow scan running the following command: sf flow scan -c .flow-scanner.json -d "./force-app/main/default/flows" --json --failon error >> result.json

the JSON file is not formatted correctly, it has on top of the file the following strings: CleanShot 2023-12-04 at 10 39 27 That makes a problem because I am expecting the result to be a JSON file (so I can parse it) however because of the "error is not a constructor" thrown in the output console, the JSON file is not well formatted.

Is there a way to remove the "error is not a constructor" prints form the command, so the JSON is well formatted ?

nvuillam commented 9 months ago

@RubenHalman maybe there is a console.log somewhere ? :/

RubenHalman commented 9 months ago

@jorgesolebur Unfortunately, I have not been able to reproduce this error myself as of yet. Are you using windows/mac or linux? Also could you try if it also occurs in our demo repository? Perhaps something is wrong in your configurations. I'm thinking about what configuration might be different but am definitely struggling, can you run sfdx doctor and see if theres any conflict with plugins? @nvuillam can you replicate this output?

nvuillam commented 9 months ago

image

I don't have this issue with MegaLinter runs

tiagoruivo commented 8 months ago

I'm facing the same issue. It seems to be a typescript exception. Honestly, the option of outputting the analysis result to a file like the -o option in sfdx scanner would be awesome. It would help separate the output of the analysis from the rest of the logging

RubenHalman commented 8 months ago

@tiagoruivo I see your point and I am willing to pursue that, but in the meanwhile, are you able to answer the question I have put to @jorgesolebur ? I am still suspecting this is a configuration error

arohrbachSFDC commented 7 months ago

I was facing the same error and it disappeared when I added the .flow-scanner.json configuration file to the root of the repository. Hope that helps.

CamilleGuillory commented 6 months ago

Hi, I'm having this issue, but only when scanning a unique flow. All other flow are analyzed correctly.

Executing task: sfdx flow:scan -p "force-app/main/default/flows/FFPSA_ProjectAfterUpdateMasterFlow.flow-meta.xml" -c config/user/.flow-scanner.json 

error is not a constructor
Identified 1 flows to scan... Scan complete

=== Total: 0 Results in 0 Flows.

The flow:

<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
    <actionCalls>
        <name>Send_Notification</name>
        <label>Send Notification</label>
        <locationX>204</locationX>
        <locationY>2567</locationY>
        <actionName>customNotificationAction</actionName>
        <actionType>customNotificationAction</actionType>
        <connector>
            <targetReference>Assign_Current_ID</targetReference>
        </connector>
        <flowTransactionModel>CurrentTransaction</flowTransactionModel>
        <inputParameters>
            <name>customNotifTypeId</name>
            <value>
                <elementReference>Custom_Notification_Type.Id</elementReference>
            </value>
        </inputParameters>
        <inputParameters>
            <name>body</name>
            <value>
                <elementReference>ClosedForTimecardNotification</elementReference>
            </value>
        </inputParameters>
        <inputParameters>
            <name>title</name>
            <value>
                <stringValue>Project closed for Timecard Entry</stringValue>
            </value>
        </inputParameters>
        <inputParameters>
            <name>recipientIds</name>
            <value>
                <elementReference>SFUserListTXT</elementReference>
            </value>
        </inputParameters>
        <inputParameters>
            <name>targetId</name>
            <value>
                <elementReference>$Record.Id</elementReference>
            </value>
        </inputParameters>
        <nameSegment>customNotificationAction</nameSegment>
        <versionSegment>1</versionSegment>
    </actionCalls>
    <apiVersion>56.0</apiVersion>
    <assignments>
        <name>AddToFinalList</name>
        <label>AddToFinalList</label>
        <locationX>204</locationX>
        <locationY>2459</locationY>
        <assignmentItems>
            <assignToReference>SFUserListTXT</assignToReference>
            <operator>Add</operator>
            <value>
                <elementReference>GetUserList.Id</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>Send_Notification</targetReference>
        </connector>
    </assignments>
    <assignments>
        <name>Approval_Status_WAR_Closed</name>
        <label>Approval Status = WAR Closed</label>
        <locationX>270</locationX>
        <locationY>539</locationY>
        <assignmentItems>
            <assignToReference>Get_Active_Renewed_Work_At_Risks.FFPSA_ApprovalStatus__c</assignToReference>
            <operator>Assign</operator>
            <value>
                <stringValue>WAR closed</stringValue>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>Update_ProjWARs</targetReference>
        </connector>
    </assignments>
    <assignments>
        <name>Assign_Current_ID</name>
        <label>Assign Current ID</label>
        <locationX>336</locationX>
        <locationY>2759</locationY>
        <assignmentItems>
            <assignToReference>previousresourceid</assignToReference>
            <operator>Assign</operator>
            <value>
                <elementReference>GetUserList.Id</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>FFPSA_Loop_through_Assignments</targetReference>
        </connector>
    </assignments>
    <assignments>
        <name>AssignmentsFromProject</name>
        <label>AssignmentsFromProject</label>
        <locationX>116</locationX>
        <locationY>1379</locationY>
        <assignmentItems>
            <assignToReference>ResourcesFromAssignments</assignToReference>
            <operator>Add</operator>
            <value>
                <elementReference>FFPSA_Get_Assignments_from_Project</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>FFPSA_SortAssignments</targetReference>
        </connector>
    </assignments>
    <assignments>
        <name>CustomNotificationType</name>
        <label>CustomNotificationType</label>
        <locationX>204</locationX>
        <locationY>2135</locationY>
        <assignmentItems>
            <assignToReference>CustomerNotificationTypeID</assignToReference>
            <operator>Assign</operator>
            <value>
                <elementReference>Custom_Notification_Type.Id</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>UserIDToUse</targetReference>
        </connector>
    </assignments>
    <assignments>
        <name>NotificationBody</name>
        <label>NotificationBody</label>
        <locationX>204</locationX>
        <locationY>2351</locationY>
        <assignmentItems>
            <assignToReference>NotificationBodyText</assignToReference>
            <operator>Assign</operator>
            <value>
                <elementReference>ClosedForTimecardNotification</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>AddToFinalList</targetReference>
        </connector>
    </assignments>
    <assignments>
        <name>Populate_BillRateFixFee_on_Assignment_from_Suggested_Bill_Rate</name>
        <label>Populate BillRateFixFee on Assignment from Suggested Bill Rate</label>
        <locationX>534</locationX>
        <locationY>3743</locationY>
        <assignmentItems>
            <assignToReference>Loop_through_Assignments_on_projectV2.FFPSA_BillRateFixFee__c</assignToReference>
            <operator>Assign</operator>
            <value>
                <elementReference>Loop_through_Assignments_on_projectV2.pse__Suggested_Bill_Rate_Number__c</elementReference>
            </value>
        </assignmentItems>
        <assignmentItems>
            <assignToReference>vAssignmentCollections</assignToReference>
            <operator>Add</operator>
            <value>
                <elementReference>Loop_through_Assignments_on_projectV2</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>Loop_through_Assignments_on_projectV2</targetReference>
        </connector>
    </assignments>
    <assignments>
        <name>Populate_field_BillRateFixFee_on_Assignment_as_0</name>
        <label>Populate field BillRateFixFee on Assignment as 0</label>
        <locationX>138</locationX>
        <locationY>3743</locationY>
        <assignmentItems>
            <assignToReference>Loop_through_Assignments_on_project.FFPSA_BillRateFixFee__c</assignToReference>
            <operator>Assign</operator>
            <value>
                <numberValue>0.0</numberValue>
            </value>
        </assignmentItems>
        <assignmentItems>
            <assignToReference>vAssignmentCollections</assignToReference>
            <operator>Add</operator>
            <value>
                <elementReference>Loop_through_Assignments_on_project</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>Loop_through_Assignments_on_project</targetReference>
        </connector>
    </assignments>
    <assignments>
        <name>UserIDToUse</name>
        <label>UserIDToUse</label>
        <locationX>204</locationX>
        <locationY>2243</locationY>
        <assignmentItems>
            <assignToReference>previousresourceid</assignToReference>
            <operator>Assign</operator>
            <value>
                <elementReference>GetUserList.Id</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>NotificationBody</targetReference>
        </connector>
    </assignments>
    <collectionProcessors>
        <name>FFPSA_SortAssignments</name>
        <elementSubtype>SortCollectionProcessor</elementSubtype>
        <label>SortAssignments</label>
        <locationX>116</locationX>
        <locationY>1487</locationY>
        <collectionProcessorType>SortCollectionProcessor</collectionProcessorType>
        <collectionReference>ResourcesFromAssignments</collectionReference>
        <connector>
            <targetReference>FFPSA_Loop_through_Assignments</targetReference>
        </connector>
        <sortOptions>
            <doesPutEmptyStringAndNullFirst>false</doesPutEmptyStringAndNullFirst>
            <sortField>pse__Resource__c</sortField>
            <sortOrder>Asc</sortOrder>
        </sortOptions>
    </collectionProcessors>
    <decisions>
        <name>Check_If_Assignments_are_not_null</name>
        <label>Check If Assignments are not null</label>
        <locationX>446</locationX>
        <locationY>3935</locationY>
        <defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
        <rules>
            <name>If_Not_Null</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>vAssignmentCollections</leftValueReference>
                <operator>IsNull</operator>
                <rightValue>
                    <booleanValue>false</booleanValue>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>Update_All_Assignments_on_Project</targetReference>
            </connector>
            <label>If Not Null</label>
        </rules>
    </decisions>
    <decisions>
        <name>Check_if_Project_fix_fee_field_is_changed</name>
        <label>Check if Project fix fee field is changed</label>
        <locationX>402</locationX>
        <locationY>3419</locationY>
        <defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
        <rules>
            <name>Values_changed_from_True_to_False</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>$Record.FFPSA_IsFixedPriceFeeProject__c</leftValueReference>
                <operator>IsChanged</operator>
                <rightValue>
                    <booleanValue>true</booleanValue>
                </rightValue>
            </conditions>
            <conditions>
                <leftValueReference>$Record.FFPSA_IsFixedPriceFeeProject__c</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <booleanValue>false</booleanValue>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>Get_Assignments_from_Project_for_Fixfee</targetReference>
            </connector>
            <label>Values changed from True to False</label>
        </rules>
        <rules>
            <name>Values_changed_from_False_to_True</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>$Record.FFPSA_IsFixedPriceFeeProject__c</leftValueReference>
                <operator>IsChanged</operator>
                <rightValue>
                    <booleanValue>true</booleanValue>
                </rightValue>
            </conditions>
            <conditions>
                <leftValueReference>$Record.FFPSA_IsFixedPriceFeeProject__c</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <booleanValue>true</booleanValue>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>Get_Assignments_from_Project_for_FixfeeV2</targetReference>
            </connector>
            <label>Values changed from False to True</label>
        </rules>
    </decisions>
    <decisions>
        <name>Check_Previous_ID</name>
        <label>Check Previous ID</label>
        <locationX>336</locationX>
        <locationY>2027</locationY>
        <defaultConnector>
            <targetReference>Assign_Current_ID</targetReference>
        </defaultConnector>
        <defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
        <rules>
            <name>No</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>previousresourceid</leftValueReference>
                <operator>NotEqualTo</operator>
                <rightValue>
                    <elementReference>GetUserList.Id</elementReference>
                </rightValue>
            </conditions>
            <conditions>
                <leftValueReference>GetResourceDetails.pse__Salesforce_User__c</leftValueReference>
                <operator>IsNull</operator>
                <rightValue>
                    <booleanValue>false</booleanValue>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>CustomNotificationType</targetReference>
            </connector>
            <label>No</label>
        </rules>
    </decisions>
    <decisions>
        <description>Decision will check if the project has reached the &quot;Soft Close/Delivered&quot; stage and if it has and the Region allows Closed for Expense Entry then this decision will become true</description>
        <name>FFPSA_Project_Region_Enabled_to_Close_Expense_Entry</name>
        <label>Project Region - Enabled to Close Expense Entry</label>
        <locationX>402</locationX>
        <locationY>3119</locationY>
        <defaultConnector>
            <targetReference>Check_if_Project_fix_fee_field_is_changed</targetReference>
        </defaultConnector>
        <defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
        <rules>
            <name>FFPSA_Region_Closed_for_Expense_Entry</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>$Record.pse__Region__r.FFPSA_SoftCloseClosedforExpenseEntry__c</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <booleanValue>true</booleanValue>
                </rightValue>
            </conditions>
            <conditions>
                <leftValueReference>$Record.pse__Stage__c</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <stringValue>Soft Close/Delivered</stringValue>
                </rightValue>
            </conditions>
            <conditions>
                <leftValueReference>$Record.pse__Stage__c</leftValueReference>
                <operator>NotEqualTo</operator>
                <rightValue>
                    <elementReference>$Record__Prior.pse__Stage__c</elementReference>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>FFPSA_Project_Soft_Close_Closed_for_Expense_Entry</targetReference>
            </connector>
            <doesRequireRecordChangedToMeetCriteria>true</doesRequireRecordChangedToMeetCriteria>
            <label>Region - Closed for Expense Entry</label>
        </rules>
    </decisions>
    <decisions>
        <description>Decision will check if the project has reached the &quot;Soft Close/Delivered&quot; stage and if it has and the Region allows Closed for Time Entry then this decision will become true</description>
        <name>FFPSA_Project_Region_Enabled_to_Close_Timecards</name>
        <label>Project Region - Enabled to Close Timecards</label>
        <locationX>402</locationX>
        <locationY>947</locationY>
        <defaultConnector>
            <targetReference>FFPSA_Project_Region_Enabled_to_Close_Expense_Entry</targetReference>
        </defaultConnector>
        <defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
        <rules>
            <name>FFPSA_Region_Closed_for_Time_Entry</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>$Record.pse__Region__r.FFPSA_SoftCloseClosedforTimeEntry__c</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <booleanValue>true</booleanValue>
                </rightValue>
            </conditions>
            <conditions>
                <leftValueReference>$Record.pse__Stage__c</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <stringValue>Soft Close/Delivered</stringValue>
                </rightValue>
            </conditions>
            <conditions>
                <leftValueReference>$Record.pse__Stage__c</leftValueReference>
                <operator>NotEqualTo</operator>
                <rightValue>
                    <elementReference>$Record__Prior.pse__Stage__c</elementReference>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>FFPSA_Project_Soft_Close_Closed_for_Time_Entry</targetReference>
            </connector>
            <label>Region - Closed for Time Entry</label>
        </rules>
    </decisions>
    <decisions>
        <name>Purchase_Order_added_Update_Work_At_Risk</name>
        <label>Purchase Order added - Update Work At Risk</label>
        <locationX>402</locationX>
        <locationY>323</locationY>
        <defaultConnector>
            <targetReference>FFPSA_Project_Region_Enabled_to_Close_Timecards</targetReference>
        </defaultConnector>
        <defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
        <rules>
            <name>PO_added</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>$Record.FFPSA_ProjectPurchaseOrderExists__c</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <stringValue>PO exists</stringValue>
                </rightValue>
            </conditions>
            <conditions>
                <leftValueReference>$Record.FFPSA_ProjectPurchaseOrderExists__c</leftValueReference>
                <operator>NotEqualTo</operator>
                <rightValue>
                    <elementReference>$Record__Prior.FFPSA_ProjectPurchaseOrderExists__c</elementReference>
                </rightValue>
            </conditions>
            <conditions>
                <leftValueReference>$Record.FFPSA_WARCount__c</leftValueReference>
                <operator>GreaterThan</operator>
                <rightValue>
                    <numberValue>0.0</numberValue>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>Get_Active_Renewed_Work_At_Risks</targetReference>
            </connector>
            <label>PO added</label>
        </rules>
    </decisions>
    <decisions>
        <name>SoftCloseNotificationEnabled</name>
        <label>SoftCloseNotificationEnabled</label>
        <locationX>248</locationX>
        <locationY>1163</locationY>
        <defaultConnector>
            <targetReference>FFPSA_Project_Region_Enabled_to_Close_Expense_Entry</targetReference>
        </defaultConnector>
        <defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
        <rules>
            <name>Yes</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>$Record.pse__Region__r.FFPSA_SoftCloseProjectNotification__c</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <booleanValue>true</booleanValue>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>FFPSA_Get_Assignments_from_Project</targetReference>
            </connector>
            <label>Yes</label>
        </rules>
    </decisions>
    <description>This flow is used for any UPDATES ONLY that takes place on Projects
Added notifications to be sent to project members. This will take into account the Soft Close - Notification checkbox on the region
Issue 259727 - Sets the Record Owner to the PM is the Owner is different to the PM user and also if the PM field is filled in.
Added updates on related Project Work At Risk record&apos;s Approval Status, if PO is added to Project.
V12: Added Bypass
Added : Update BillrateFixFee on assignment if FixFee on project is updated</description>
    <environments>Default</environments>
    <formulas>
        <name>ClosedForTimecardNotification</name>
        <dataType>String</dataType>
        <expression>&apos;Please note that Project &apos;+{!$Record.Name}+&apos; has been closed for time entry. No further time can be logged. Please contact the project manager.&apos;</expression>
    </formulas>
    <formulas>
        <name>PMUserID</name>
        <dataType>String</dataType>
        <expression>{!$Record.pse__Project_Manager__r.pse__Salesforce_User__r.id}</expression>
    </formulas>
    <interviewLabel>FFPSA - Project After Update Master Flowv1 {!$Flow.CurrentDateTime}</interviewLabel>
    <label>FFPSA - Project After Update Master Flow</label>
    <loops>
        <name>FFPSA_Loop_through_Assignments</name>
        <label>Loop through Assignments</label>
        <locationX>116</locationX>
        <locationY>1595</locationY>
        <collectionReference>ResourcesFromAssignments</collectionReference>
        <iterationOrder>Asc</iterationOrder>
        <nextValueConnector>
            <targetReference>GetResourceDetails</targetReference>
        </nextValueConnector>
        <noMoreValuesConnector>
            <targetReference>FFPSA_Project_Region_Enabled_to_Close_Expense_Entry</targetReference>
        </noMoreValuesConnector>
    </loops>
    <loops>
        <name>Loop_through_Assignments_on_project</name>
        <label>Loop through Assignments on project</label>
        <locationX>50</locationX>
        <locationY>3635</locationY>
        <collectionReference>Get_Assignments_from_Project_for_Fixfee</collectionReference>
        <iterationOrder>Asc</iterationOrder>
        <nextValueConnector>
            <targetReference>Populate_field_BillRateFixFee_on_Assignment_as_0</targetReference>
        </nextValueConnector>
        <noMoreValuesConnector>
            <isGoTo>true</isGoTo>
            <targetReference>Check_If_Assignments_are_not_null</targetReference>
        </noMoreValuesConnector>
    </loops>
    <loops>
        <name>Loop_through_Assignments_on_projectV2</name>
        <label>Loop through Assignments on project</label>
        <locationX>446</locationX>
        <locationY>3635</locationY>
        <collectionReference>Get_Assignments_from_Project_for_FixfeeV2</collectionReference>
        <iterationOrder>Asc</iterationOrder>
        <nextValueConnector>
            <targetReference>Populate_BillRateFixFee_on_Assignment_from_Suggested_Bill_Rate</targetReference>
        </nextValueConnector>
        <noMoreValuesConnector>
            <targetReference>Check_If_Assignments_are_not_null</targetReference>
        </noMoreValuesConnector>
    </loops>
    <processMetadataValues>
        <name>BuilderType</name>
        <value>
            <stringValue>LightningFlowBuilder</stringValue>
        </value>
    </processMetadataValues>
    <processMetadataValues>
        <name>CanvasMode</name>
        <value>
            <stringValue>AUTO_LAYOUT_CANVAS</stringValue>
        </value>
    </processMetadataValues>
    <processMetadataValues>
        <name>OriginBuilderType</name>
        <value>
            <stringValue>LightningFlowBuilder</stringValue>
        </value>
    </processMetadataValues>
    <processType>AutoLaunchedFlow</processType>
    <recordLookups>
        <name>Custom_Notification_Type</name>
        <label>Custom Notification Type</label>
        <locationX>336</locationX>
        <locationY>1919</locationY>
        <assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
        <connector>
            <targetReference>Check_Previous_ID</targetReference>
        </connector>
        <filterLogic>and</filterLogic>
        <filters>
            <field>DeveloperName</field>
            <operator>EqualTo</operator>
            <value>
                <stringValue>FFPSA_ProjectClosedforTimecards</stringValue>
            </value>
        </filters>
        <getFirstRecordOnly>true</getFirstRecordOnly>
        <object>CustomNotificationType</object>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </recordLookups>
    <recordLookups>
        <description>Retrieve all assignments that relate to the project triggering this flow</description>
        <name>FFPSA_Get_Assignments_from_Project</name>
        <label>Get Assignments from Project</label>
        <locationX>116</locationX>
        <locationY>1271</locationY>
        <assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
        <connector>
            <targetReference>AssignmentsFromProject</targetReference>
        </connector>
        <filterLogic>and</filterLogic>
        <filters>
            <field>pse__Project__c</field>
            <operator>EqualTo</operator>
            <value>
                <elementReference>$Record.Id</elementReference>
            </value>
        </filters>
        <getFirstRecordOnly>false</getFirstRecordOnly>
        <object>pse__Assignment__c</object>
        <sortField>pse__Resource__c</sortField>
        <sortOrder>Asc</sortOrder>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </recordLookups>
    <recordLookups>
        <name>Get_Active_Renewed_Work_At_Risks</name>
        <label>Get Active/Renewed Work At Risks</label>
        <locationX>270</locationX>
        <locationY>431</locationY>
        <assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
        <connector>
            <targetReference>Approval_Status_WAR_Closed</targetReference>
        </connector>
        <filterLogic>(1 OR 2) AND 3</filterLogic>
        <filters>
            <field>FFPSA_ApprovalStatus__c</field>
            <operator>EqualTo</operator>
            <value>
                <stringValue>WAR active</stringValue>
            </value>
        </filters>
        <filters>
            <field>FFPSA_ApprovalStatus__c</field>
            <operator>EqualTo</operator>
            <value>
                <stringValue>WAR renewed</stringValue>
            </value>
        </filters>
        <filters>
            <field>FFPSA_Project__c</field>
            <operator>EqualTo</operator>
            <value>
                <elementReference>$Record.Id</elementReference>
            </value>
        </filters>
        <getFirstRecordOnly>true</getFirstRecordOnly>
        <object>FFPSA_ProjectWorkAtRisk__c</object>
        <queriedFields>Id</queriedFields>
        <queriedFields>FFPSA_ApprovalStatus__c</queriedFields>
        <queriedFields>FFPSA_Project__c</queriedFields>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </recordLookups>
    <recordLookups>
        <description>Retrieve all assignments that relate to the project triggering this flow</description>
        <name>Get_Assignments_from_Project_for_Fixfee</name>
        <label>Get Assignments from Project for Fixfee</label>
        <locationX>50</locationX>
        <locationY>3527</locationY>
        <assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
        <connector>
            <targetReference>Loop_through_Assignments_on_project</targetReference>
        </connector>
        <filterLogic>and</filterLogic>
        <filters>
            <field>pse__Project__c</field>
            <operator>EqualTo</operator>
            <value>
                <elementReference>$Record.Id</elementReference>
            </value>
        </filters>
        <getFirstRecordOnly>false</getFirstRecordOnly>
        <object>pse__Assignment__c</object>
        <queriedFields>Id</queriedFields>
        <queriedFields>pse__Suggested_Bill_Rate_Number__c</queriedFields>
        <queriedFields>pse__Suggested_Bill_Rate__c</queriedFields>
        <queriedFields>FFPSA_BillRateFixFee__c</queriedFields>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </recordLookups>
    <recordLookups>
        <description>Retrieve all assignments that relate to the project triggering this flow</description>
        <name>Get_Assignments_from_Project_for_FixfeeV2</name>
        <label>Get Assignments from Project for Fixfee</label>
        <locationX>446</locationX>
        <locationY>3527</locationY>
        <assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
        <connector>
            <targetReference>Loop_through_Assignments_on_projectV2</targetReference>
        </connector>
        <filterLogic>and</filterLogic>
        <filters>
            <field>pse__Project__c</field>
            <operator>EqualTo</operator>
            <value>
                <elementReference>$Record.Id</elementReference>
            </value>
        </filters>
        <filters>
            <field>pse__Is_Billable__c</field>
            <operator>EqualTo</operator>
            <value>
                <booleanValue>true</booleanValue>
            </value>
        </filters>
        <getFirstRecordOnly>false</getFirstRecordOnly>
        <object>pse__Assignment__c</object>
        <queriedFields>Id</queriedFields>
        <queriedFields>pse__Suggested_Bill_Rate_Number__c</queriedFields>
        <queriedFields>pse__Suggested_Bill_Rate__c</queriedFields>
        <queriedFields>FFPSA_BillRateFixFee__c</queriedFields>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </recordLookups>
    <recordLookups>
        <name>GetResourceDetails</name>
        <label>GetResourceDetails</label>
        <locationX>336</locationX>
        <locationY>1703</locationY>
        <assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
        <connector>
            <targetReference>GetUserList</targetReference>
        </connector>
        <filterLogic>and</filterLogic>
        <filters>
            <field>Id</field>
            <operator>EqualTo</operator>
            <value>
                <elementReference>FFPSA_Loop_through_Assignments.pse__Resource__c</elementReference>
            </value>
        </filters>
        <getFirstRecordOnly>true</getFirstRecordOnly>
        <object>Contact</object>
        <queriedFields>Id</queriedFields>
        <queriedFields>pse__Salesforce_User__c</queriedFields>
        <sortField>Id</sortField>
        <sortOrder>Asc</sortOrder>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </recordLookups>
    <recordLookups>
        <name>GetUserList</name>
        <label>GetUserList</label>
        <locationX>336</locationX>
        <locationY>1811</locationY>
        <assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
        <connector>
            <targetReference>Custom_Notification_Type</targetReference>
        </connector>
        <filterLogic>and</filterLogic>
        <filters>
            <field>Id</field>
            <operator>EqualTo</operator>
            <value>
                <elementReference>GetResourceDetails.pse__Salesforce_User__c</elementReference>
            </value>
        </filters>
        <getFirstRecordOnly>true</getFirstRecordOnly>
        <object>User</object>
        <sortField>Id</sortField>
        <sortOrder>Asc</sortOrder>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </recordLookups>
    <recordUpdates>
        <name>FFPSA_Project_Soft_Close_Closed_for_Expense_Entry</name>
        <label>Project Soft Close - Closed for Expense Entry</label>
        <locationX>270</locationX>
        <locationY>3227</locationY>
        <connector>
            <targetReference>Check_if_Project_fix_fee_field_is_changed</targetReference>
        </connector>
        <inputAssignments>
            <field>pse__Closed_for_Expense_Entry__c</field>
            <value>
                <booleanValue>true</booleanValue>
            </value>
        </inputAssignments>
        <inputReference>$Record</inputReference>
    </recordUpdates>
    <recordUpdates>
        <description>Set the project that triggered this flow to be &quot;Closed for Time Entry&quot;</description>
        <name>FFPSA_Project_Soft_Close_Closed_for_Time_Entry</name>
        <label>Project Soft Close - Closed for Time Entry</label>
        <locationX>248</locationX>
        <locationY>1055</locationY>
        <connector>
            <targetReference>SoftCloseNotificationEnabled</targetReference>
        </connector>
        <inputAssignments>
            <field>pse__Closed_for_Time_Entry__c</field>
            <value>
                <booleanValue>true</booleanValue>
            </value>
        </inputAssignments>
        <inputReference>$Record</inputReference>
    </recordUpdates>
    <recordUpdates>
        <name>Update_All_Assignments_on_Project</name>
        <label>Update All Assignments on Project</label>
        <locationX>314</locationX>
        <locationY>4043</locationY>
        <inputReference>vAssignmentCollections</inputReference>
    </recordUpdates>
    <recordUpdates>
        <name>Update_Proj_Work_At_Risk_Status</name>
        <label>Update Proj Work At Risk Status</label>
        <locationX>270</locationX>
        <locationY>755</locationY>
        <connector>
            <targetReference>FFPSA_Project_Region_Enabled_to_Close_Timecards</targetReference>
        </connector>
        <inputAssignments>
            <field>FFPSA_WorkAtRiskStatus__c</field>
            <value>
                <stringValue>WAR closed</stringValue>
            </value>
        </inputAssignments>
        <inputReference>$Record</inputReference>
    </recordUpdates>
    <recordUpdates>
        <name>Update_ProjWARs</name>
        <label>Update ProjWARs</label>
        <locationX>270</locationX>
        <locationY>647</locationY>
        <connector>
            <targetReference>Update_Proj_Work_At_Risk_Status</targetReference>
        </connector>
        <inputReference>Get_Active_Renewed_Work_At_Risks</inputReference>
    </recordUpdates>
    <start>
        <locationX>276</locationX>
        <locationY>0</locationY>
        <connector>
            <targetReference>Purchase_Order_added_Update_Work_At_Risk</targetReference>
        </connector>
        <filterFormula>NOT({!$Permission.G_BypassFlowTrigger})</filterFormula>
        <object>pse__Proj__c</object>
        <recordTriggerType>Update</recordTriggerType>
        <triggerType>RecordAfterSave</triggerType>
    </start>
    <status>Active</status>
    <variables>
        <name>CustomerNotificationTypeID</name>
        <dataType>String</dataType>
        <isCollection>false</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
    </variables>
    <variables>
        <name>NotificationBodyText</name>
        <dataType>String</dataType>
        <isCollection>false</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
    </variables>
    <variables>
        <name>previousresourceid</name>
        <dataType>String</dataType>
        <isCollection>false</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
    </variables>
    <variables>
        <name>ResourceEmailAddresses</name>
        <dataType>SObject</dataType>
        <isCollection>true</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
        <objectType>Contact</objectType>
    </variables>
    <variables>
        <name>ResourcesFromAssignments</name>
        <dataType>SObject</dataType>
        <isCollection>true</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
        <objectType>pse__Assignment__c</objectType>
    </variables>
    <variables>
        <name>SFUserList</name>
        <dataType>SObject</dataType>
        <isCollection>true</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
        <objectType>User</objectType>
    </variables>
    <variables>
        <name>SFUserListTXT</name>
        <dataType>String</dataType>
        <isCollection>true</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
    </variables>
    <variables>
        <name>vAssignmentCollections</name>
        <dataType>SObject</dataType>
        <isCollection>true</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
        <objectType>pse__Assignment__c</objectType>
    </variables>
</Flow>

Output from an other scan working well:

Executing task: sfdx flow:scan -p "force-app/main/default/flows/FFPSA_AssignmentMasterAfterFlow.flow-meta.xml" -c config/user/.flow-scanner.json 

Identified 1 flows to scan... Scan complete

=== Flow: FFPSA Assignment Master (After Flow) (2 results)
Type: AutoLaunchedFlow

RULE                      TYPE           NAME
────────────────────────  ─────────────  ──────────────────
Missing Flow Description  description    undefined
Missing Fault Path        recordUpdates  Set_Bill_Rate_to_0

=== Total: 2 Results in 1 Flows.
RubenHalman commented 6 months ago

It turns out there are multiple reasons why this error can occur. With 2.17, this error should be prevented in case anything goes wrong with the rule configurations. @CamilleGuillory I will try to investigate this specific case as well, thank you very much for providing the relevant flow metadata

CamilleGuillory commented 6 months ago

I see that you created a PR, I hope it will fix the issue.

If not here is an other flow that is failing, I haven't found any similarities between them, this one is a screen flow:

<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>60.0</apiVersion>
    <assignments>
        <name>Assign_LIGHT</name>
        <label>Assign_LIGHT</label>
        <locationX>402</locationX>
        <locationY>890</locationY>
        <assignmentItems>
            <assignToReference>LightType_ID</assignToReference>
            <operator>Assign</operator>
            <value>
                <elementReference>Loop_RType.Id</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>Loop_RType</targetReference>
        </connector>
    </assignments>
    <assignments>
        <name>AssignFull</name>
        <label>Assign_Full</label>
        <locationX>138</locationX>
        <locationY>890</locationY>
        <assignmentItems>
            <assignToReference>FullType_ID</assignToReference>
            <operator>Assign</operator>
            <value>
                <elementReference>Loop_RType.Id</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>Loop_RType</targetReference>
        </connector>
    </assignments>
    <assignments>
        <name>AssignRTValid</name>
        <label>Assign RType Valid</label>
        <locationX>138</locationX>
        <locationY>1490</locationY>
        <assignmentItems>
            <assignToReference>GoNoGoType</assignToReference>
            <operator>Assign</operator>
            <value>
                <elementReference>RTEligible.CRM_GoNoGoType__c</elementReference>
            </value>
        </assignmentItems>
        <connector>
            <targetReference>RTEligible</targetReference>
        </connector>
    </assignments>
    <choices>
        <description>RecordType GonogoReview</description>
        <name>FullType_Label</name>
        <choiceText>{!$Label.CRM_GoNoGoReviewFullRType}</choiceText>
        <dataType>String</dataType>
        <value>
            <elementReference>FullType_ID</elementReference>
        </value>
    </choices>
    <choices>
        <name>LightType_Label</name>
        <choiceText>{!$Label.CRM_GoNoGoReviewLightRType}</choiceText>
        <dataType>String</dataType>
        <value>
            <elementReference>LightType_ID</elementReference>
        </value>
    </choices>
    <decisions>
        <name>Dec_HasEditAccess</name>
        <label>Has Edit Access ?</label>
        <locationX>776</locationX>
        <locationY>242</locationY>
        <defaultConnector>
            <targetReference>Screen_NoEditAccess</targetReference>
        </defaultConnector>
        <defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
        <rules>
            <name>Out_EditAccess_Yes</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>Get_UserRecordAccess.varR_UserRecordAccessSingle.HasEditAccess</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <booleanValue>true</booleanValue>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>GetOpportunity</targetReference>
            </connector>
            <label>Yes</label>
        </rules>
    </decisions>
    <decisions>
        <name>Decision_Amount</name>
        <label>Decision Amount</label>
        <locationX>270</locationX>
        <locationY>1382</locationY>
        <defaultConnector>
            <targetReference>RTEligible</targetReference>
        </defaultConnector>
        <defaultConnectorLabel>Not Greater</defaultConnectorLabel>
        <rules>
            <name>AmmountGreaterOrEqual</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>GetOpportunity.Amount</leftValueReference>
                <operator>GreaterThanOrEqualTo</operator>
                <rightValue>
                    <elementReference>RTEligible.CRM_ThresholdAmount__c</elementReference>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>AssignRTValid</targetReference>
            </connector>
            <label>Greater or Equal</label>
        </rules>
    </decisions>
    <decisions>
        <name>Decision_NewGoNoGo</name>
        <label>Decision_NewGoNoGo</label>
        <locationX>446</locationX>
        <locationY>458</locationY>
        <defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
        <rules>
            <name>True</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>GetOpportunity.CRM_GoNoGoReview__c</leftValueReference>
                <operator>IsNull</operator>
                <rightValue>
                    <booleanValue>true</booleanValue>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>Get_RecordType</targetReference>
            </connector>
            <label>True</label>
        </rules>
    </decisions>
    <decisions>
        <name>Decision_RType</name>
        <label>Decision_RType</label>
        <locationX>402</locationX>
        <locationY>782</locationY>
        <defaultConnector>
            <targetReference>Loop_RType</targetReference>
        </defaultConnector>
        <defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
        <rules>
            <name>Decision_FULL</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>Loop_RType.DeveloperName</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <stringValue>CRM_GoNoGoFullVersion</stringValue>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>AssignFull</targetReference>
            </connector>
            <label>FULL</label>
        </rules>
        <rules>
            <name>Decision_LIGHT</name>
            <conditionLogic>and</conditionLogic>
            <conditions>
                <leftValueReference>Loop_RType.DeveloperName</leftValueReference>
                <operator>EqualTo</operator>
                <rightValue>
                    <stringValue>CRM_GoNoGoLightVersion</stringValue>
                </rightValue>
            </conditions>
            <connector>
                <targetReference>Assign_LIGHT</targetReference>
            </connector>
            <label>LIGHT</label>
        </rules>
    </decisions>
    <description>Create a Go / No Go Review and update Opportunity</description>
    <environments>Default</environments>
    <formulas>
        <name>RTSelected</name>
        <dataType>String</dataType>
        <expression>IF({!GoNoGoType} == &apos;LIGHT&apos;, {!Screen_All}, {!Srceen_Full})</expression>
    </formulas>
    <interviewLabel>CRM_Opportunity_NewGoNoGoReview {!$Flow.CurrentDateTime}</interviewLabel>
    <label>CRM_Opportunity_NewGoNoGoReview</label>
    <loops>
        <description>Build record type choice ( custom label and rtype id)</description>
        <name>Loop_RType</name>
        <label>Loop_RType</label>
        <locationX>50</locationX>
        <locationY>674</locationY>
        <collectionReference>Get_RecordType</collectionReference>
        <iterationOrder>Asc</iterationOrder>
        <nextValueConnector>
            <targetReference>Decision_RType</targetReference>
        </nextValueConnector>
        <noMoreValuesConnector>
            <targetReference>Get_MetaDataType</targetReference>
        </noMoreValuesConnector>
    </loops>
    <loops>
        <name>RTEligible</name>
        <label>RType Eligible</label>
        <locationX>50</locationX>
        <locationY>1274</locationY>
        <collectionReference>Get_MetaDataType</collectionReference>
        <iterationOrder>Asc</iterationOrder>
        <nextValueConnector>
            <targetReference>Decision_Amount</targetReference>
        </nextValueConnector>
        <noMoreValuesConnector>
            <targetReference>New_Go_No_Go_Review</targetReference>
        </noMoreValuesConnector>
    </loops>
    <processMetadataValues>
        <name>BuilderType</name>
        <value>
            <stringValue>LightningFlowBuilder</stringValue>
        </value>
    </processMetadataValues>
    <processMetadataValues>
        <name>CanvasMode</name>
        <value>
            <stringValue>AUTO_LAYOUT_CANVAS</stringValue>
        </value>
    </processMetadataValues>
    <processMetadataValues>
        <name>OriginBuilderType</name>
        <value>
            <stringValue>LightningFlowBuilder</stringValue>
        </value>
    </processMetadataValues>
    <processType>Flow</processType>
    <recordCreates>
        <name>Create_GoNoGoReview</name>
        <label>Create GoNoGoReview</label>
        <locationX>50</locationX>
        <locationY>1874</locationY>
        <assignRecordIdToReference>GoNoGoID</assignRecordIdToReference>
        <connector>
            <targetReference>Update_Opportunity</targetReference>
        </connector>
        <faultConnector>
            <targetReference>Parse_Flow_Fault_Error</targetReference>
        </faultConnector>
        <inputAssignments>
            <field>CRM_EstimatedAmount__c</field>
            <value>
                <elementReference>cEstimatedAmount</elementReference>
            </value>
        </inputAssignments>
        <inputAssignments>
            <field>CRM_Opportunity__c</field>
            <value>
                <elementReference>recordId</elementReference>
            </value>
        </inputAssignments>
        <inputAssignments>
            <field>RecordTypeId</field>
            <value>
                <elementReference>RTSelected</elementReference>
            </value>
        </inputAssignments>
        <object>CRM_GoNoGoReview__c</object>
    </recordCreates>
    <recordLookups>
        <name>Get_MetaDataType</name>
        <label>Get MetaDataType</label>
        <locationX>50</locationX>
        <locationY>1166</locationY>
        <assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
        <connector>
            <targetReference>RTEligible</targetReference>
        </connector>
        <filterLogic>and</filterLogic>
        <filters>
            <field>CRM_EngagementLevel__c</field>
            <operator>EqualTo</operator>
            <value>
                <elementReference>GetOpportunity.CRM_EngagementLevel__c</elementReference>
            </value>
        </filters>
        <filters>
            <field>CRM_Country__c</field>
            <operator>EqualTo</operator>
            <value>
                <elementReference>GetOpportunity.CRM_LegalEntityAddress__CountryCode__s</elementReference>
            </value>
        </filters>
        <getFirstRecordOnly>false</getFirstRecordOnly>
        <object>CRM_GoNoGoCriteria__mdt</object>
        <sortField>CRM_ThresholdAmount__c</sortField>
        <sortOrder>Asc</sortOrder>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </recordLookups>
    <recordLookups>
        <name>Get_RecordType</name>
        <label>Get RecordType</label>
        <locationX>50</locationX>
        <locationY>566</locationY>
        <assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
        <connector>
            <targetReference>Loop_RType</targetReference>
        </connector>
        <filterLogic>and</filterLogic>
        <filters>
            <field>SobjectType</field>
            <operator>EqualTo</operator>
            <value>
                <stringValue>CRM_GoNoGoReview__c</stringValue>
            </value>
        </filters>
        <getFirstRecordOnly>false</getFirstRecordOnly>
        <object>RecordType</object>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </recordLookups>
    <recordLookups>
        <name>GetOpportunity</name>
        <label>Get Opportunity</label>
        <locationX>446</locationX>
        <locationY>350</locationY>
        <assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
        <connector>
            <targetReference>Decision_NewGoNoGo</targetReference>
        </connector>
        <filterLogic>and</filterLogic>
        <filters>
            <field>Id</field>
            <operator>EqualTo</operator>
            <value>
                <elementReference>recordId</elementReference>
            </value>
        </filters>
        <getFirstRecordOnly>true</getFirstRecordOnly>
        <object>Opportunity</object>
        <queriedFields>Id</queriedFields>
        <queriedFields>Name</queriedFields>
        <queriedFields>Amount</queriedFields>
        <queriedFields>AccountId</queriedFields>
        <queriedFields>CRM_OpportunityNumber__c</queriedFields>
        <queriedFields>CurrencyIsoCode</queriedFields>
        <queriedFields>CRM_EngagementLevel__c</queriedFields>
        <queriedFields>CRM_GoNoGoReview__c</queriedFields>
        <queriedFields>CRM_LegalEntityAddress__CountryCode__s</queriedFields>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </recordLookups>
    <recordUpdates>
        <name>Update_Opportunity</name>
        <label>Update_Opportunity</label>
        <locationX>50</locationX>
        <locationY>1982</locationY>
        <connector>
            <targetReference>Screen_Redirect</targetReference>
        </connector>
        <faultConnector>
            <isGoTo>true</isGoTo>
            <targetReference>Parse_Flow_Fault_Error</targetReference>
        </faultConnector>
        <filterLogic>and</filterLogic>
        <filters>
            <field>Id</field>
            <operator>EqualTo</operator>
            <value>
                <elementReference>recordId</elementReference>
            </value>
        </filters>
        <inputAssignments>
            <field>CRM_GoNoGoReview__c</field>
            <value>
                <elementReference>GoNoGoID</elementReference>
            </value>
        </inputAssignments>
        <object>Opportunity</object>
    </recordUpdates>
    <runInMode>SystemModeWithoutSharing</runInMode>
    <screens>
        <name>New_Go_No_Go_Review</name>
        <label>New Go / No Go Review</label>
        <locationX>50</locationX>
        <locationY>1766</locationY>
        <allowBack>true</allowBack>
        <allowFinish>true</allowFinish>
        <allowPause>true</allowPause>
        <connector>
            <targetReference>Create_GoNoGoReview</targetReference>
        </connector>
        <fields>
            <name>Screen_Opportunity</name>
            <fieldText>&lt;p&gt;&lt;span style=&quot;font-size: 12px; color: rgb(116, 116, 116);&quot;&gt;Opportunity&lt;/span&gt;&lt;/p&gt;&lt;p&gt;{!GetOpportunity.CRM_OpportunityNumber__c} - {!GetOpportunity.Name}&lt;/p&gt;</fieldText>
            <fieldType>DisplayText</fieldType>
        </fields>
        <fields>
            <name>cEstimatedAmount</name>
            <dataType>Currency</dataType>
            <defaultValue>
                <elementReference>GetOpportunity.Amount</elementReference>
            </defaultValue>
            <fieldText>Estimated Amount</fieldText>
            <fieldType>InputField</fieldType>
            <inputsOnNextNavToAssocScrn>UseStoredValues</inputsOnNextNavToAssocScrn>
            <isRequired>true</isRequired>
            <scale>2</scale>
        </fields>
        <fields>
            <name>New_Go_No_Go_Review_Section1</name>
            <fieldType>RegionContainer</fieldType>
            <fields>
                <name>New_Go_No_Go_Review_Section1_Column1</name>
                <fieldType>Region</fieldType>
                <fields>
                    <name>Srceen_Full</name>
                    <choiceReferences>FullType_Label</choiceReferences>
                    <dataType>String</dataType>
                    <defaultSelectedChoiceReference>FullType_Label</defaultSelectedChoiceReference>
                    <fieldText>Type de Go / No Go</fieldText>
                    <fieldType>RadioButtons</fieldType>
                    <inputsOnNextNavToAssocScrn>UseStoredValues</inputsOnNextNavToAssocScrn>
                    <isRequired>true</isRequired>
                    <visibilityRule>
                        <conditionLogic>and</conditionLogic>
                        <conditions>
                            <leftValueReference>GoNoGoType</leftValueReference>
                            <operator>EqualTo</operator>
                            <rightValue>
                                <stringValue>FULL</stringValue>
                            </rightValue>
                        </conditions>
                    </visibilityRule>
                </fields>
                <fields>
                    <name>Screen_All</name>
                    <choiceReferences>LightType_Label</choiceReferences>
                    <choiceReferences>FullType_Label</choiceReferences>
                    <dataType>String</dataType>
                    <defaultSelectedChoiceReference>LightType_Label</defaultSelectedChoiceReference>
                    <fieldText>Type de Go / No Go</fieldText>
                    <fieldType>RadioButtons</fieldType>
                    <inputsOnNextNavToAssocScrn>UseStoredValues</inputsOnNextNavToAssocScrn>
                    <isRequired>true</isRequired>
                    <visibilityRule>
                        <conditionLogic>and</conditionLogic>
                        <conditions>
                            <leftValueReference>GoNoGoType</leftValueReference>
                            <operator>EqualTo</operator>
                            <rightValue>
                                <stringValue>LIGHT</stringValue>
                            </rightValue>
                        </conditions>
                    </visibilityRule>
                </fields>
                <inputParameters>
                    <name>width</name>
                    <value>
                        <stringValue>6</stringValue>
                    </value>
                </inputParameters>
                <isRequired>false</isRequired>
            </fields>
            <fields>
                <name>New_Go_No_Go_Review_Section1_Column2</name>
                <fieldType>Region</fieldType>
                <inputParameters>
                    <name>width</name>
                    <value>
                        <stringValue>6</stringValue>
                    </value>
                </inputParameters>
                <isRequired>false</isRequired>
            </fields>
            <isRequired>false</isRequired>
            <regionContainerType>SectionWithoutHeader</regionContainerType>
        </fields>
        <showFooter>true</showFooter>
        <showHeader>true</showHeader>
    </screens>
    <screens>
        <name>scr_ShowFaultError</name>
        <label>scr_ShowFaultError</label>
        <locationX>578</locationX>
        <locationY>2090</locationY>
        <allowBack>true</allowBack>
        <allowFinish>true</allowFinish>
        <allowPause>true</allowPause>
        <fields>
            <name>dis_Error</name>
            <fieldText>&lt;p&gt;&lt;strong&gt;&lt;u&gt;The following error occurred:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;{!Parse_Flow_Fault_Error.varT_OutputParsedFaultMessage}&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;If you need further assistance, please don&apos;t hesitate to reach out to your Admin.&lt;/p&gt;</fieldText>
            <fieldType>DisplayText</fieldType>
        </fields>
        <showFooter>true</showFooter>
        <showHeader>true</showHeader>
    </screens>
    <screens>
        <name>Screen_NoEditAccess</name>
        <label>Edit Access</label>
        <locationX>1106</locationX>
        <locationY>350</locationY>
        <allowBack>true</allowBack>
        <allowFinish>true</allowFinish>
        <allowPause>true</allowPause>
        <fields>
            <name>DText_NoEditAccess</name>
            <fieldText>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong style=&quot;font-size: 14px; color: rgb(255, 0, 0);&quot;&gt;{!$Label.CRM_NoEditAccess}&lt;/strong&gt;&lt;/p&gt;</fieldText>
            <fieldType>DisplayText</fieldType>
        </fields>
        <showFooter>true</showFooter>
        <showHeader>true</showHeader>
    </screens>
    <screens>
        <name>Screen_Redirect</name>
        <label>Screen_Redirect</label>
        <locationX>50</locationX>
        <locationY>2090</locationY>
        <allowBack>true</allowBack>
        <allowFinish>true</allowFinish>
        <allowPause>true</allowPause>
        <fields>
            <name>Redirect</name>
            <extensionName>c:crm_redirectToRecordFlow</extensionName>
            <fieldType>ComponentInstance</fieldType>
            <inputParameters>
                <name>recordId</name>
                <value>
                    <elementReference>GoNoGoID</elementReference>
                </value>
            </inputParameters>
            <inputsOnNextNavToAssocScrn>UseStoredValues</inputsOnNextNavToAssocScrn>
            <isRequired>true</isRequired>
            <storeOutputAutomatically>true</storeOutputAutomatically>
        </fields>
        <showFooter>false</showFooter>
        <showHeader>false</showHeader>
    </screens>
    <start>
        <locationX>650</locationX>
        <locationY>0</locationY>
        <connector>
            <targetReference>Get_UserRecordAccess</targetReference>
        </connector>
    </start>
    <status>Active</status>
    <subflows>
        <name>Get_UserRecordAccess</name>
        <label>Get UserRecordAccess</label>
        <locationX>776</locationX>
        <locationY>134</locationY>
        <connector>
            <targetReference>Dec_HasEditAccess</targetReference>
        </connector>
        <flowName>CRM_GetUserRecordAccess</flowName>
        <inputAssignments>
            <name>varT_InputSingleRecordId</name>
            <value>
                <elementReference>recordId</elementReference>
            </value>
        </inputAssignments>
        <inputAssignments>
            <name>varT_UserId</name>
            <value>
                <elementReference>$User.Id</elementReference>
            </value>
        </inputAssignments>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </subflows>
    <subflows>
        <name>Parse_Flow_Fault_Error</name>
        <label>Parse Flow Fault Error</label>
        <locationX>578</locationX>
        <locationY>1982</locationY>
        <connector>
            <targetReference>scr_ShowFaultError</targetReference>
        </connector>
        <flowName>G_ParseFlowFaultMessage</flowName>
        <inputAssignments>
            <name>varT_InputFaultMessage</name>
            <value>
                <elementReference>$Flow.FaultMessage</elementReference>
            </value>
        </inputAssignments>
        <storeOutputAutomatically>true</storeOutputAutomatically>
    </subflows>
    <variables>
        <name>FullType_ID</name>
        <dataType>String</dataType>
        <isCollection>false</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
    </variables>
    <variables>
        <name>GoNoGoID</name>
        <dataType>String</dataType>
        <isCollection>false</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
    </variables>
    <variables>
        <name>GoNoGoType</name>
        <dataType>String</dataType>
        <isCollection>false</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
        <value>
            <stringValue>LIGHT</stringValue>
        </value>
    </variables>
    <variables>
        <name>LightType_ID</name>
        <dataType>String</dataType>
        <isCollection>false</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
    </variables>
    <variables>
        <name>recordId</name>
        <dataType>String</dataType>
        <isCollection>false</isCollection>
        <isInput>true</isInput>
        <isOutput>false</isOutput>
    </variables>
</Flow>
RubenHalman commented 6 months ago

@CamilleGuillory @jorgesolebur @tiagoruivo @arohrbachSFDC

Thank you all for involving yourselves with this issue. It turns out with our latest compiler, there was a regression issue with the handling of Flows that have multiple loops(My deepest apologies). Although there are several other reasons this error could pop up, based on the provided flows from @CamilleGuillory I feel pretty confident we have resolved the issue that most likely you have been experiencing. Please do keep us posted if you are still experiencing this with the latest version. We will definitely prioritize more elaborate error handling

CamilleGuillory commented 6 months ago

Confirmed, all flows are now correctly analyzed

jorgesolebur commented 6 months ago

This is amazing! thanks for the hard work ! (it took some time but you made it !) Will be testing it soon