The root cause is the mismatch between your flow’s hardcoded picklist value and the updated field API name. Let me walk you through the complete solution addressing all three focus areas.
Picklist Value Management:
When you renamed the picklist value API name from “In Progress” to “In_Progress”, Salesforce updated the field metadata but didn’t update existing references in flows. The error occurs because Flow Builder validates picklist assignments against the current API name, not the label.
To fix the immediate issue:
- Navigate to Setup > Flows
- Find your record-triggered flow and click ‘Edit’
- Locate the Update Records element that’s failing
- Click on the Project_Status__c field assignment
- Change the value from “In Progress” to “In_Progress”
- Click Done, then Save As > New Version
- Activate the new version
However, there’s a better approach than hardcoding picklist values.
Flow Builder Error Handling:
Implement proper error handling to catch picklist validation failures:
- After your Update Records element, add a Decision element named “Check Update Success”
- Add outcome: “Update Failed” with condition: {!$Flow.FaultMessage} Is Null = False
- Under the “Update Failed” path, add these elements:
- Assignment: Store {!$Flow.FaultMessage} in a text variable
- Create Records: Log the error to a custom Error_Log__c object
- Send Email: Notify admins with error details
This prevents silent failures and gives you immediate visibility when field changes break automation.
Field API Name Consistency:
The best practice is to avoid hardcoded picklist values entirely. Instead, use dynamic references:
Flow Structure:
1. Get Records: Query PicklistValueInfo where
EntityParticle = 'CustomObject__c.Project_Status__c'
AND MasterLabel = 'In Progress'
2. Assignment: Set {!StatusValue} = {!GetPicklist.ApiName}
3. Update Records: Project_Status__c = {!StatusValue}
This approach queries the actual picklist metadata at runtime, so if you rename API names in the future, the flow continues working as long as the label remains consistent.
Alternatively, for simpler flows, use a formula to reference the picklist:
- Create a formula field: Project_Status_Formula__c
- Formula: TEXT(Project_Status__c)
- In your flow, update using the formula field reference
Prevention Strategy:
Before modifying picklist API names, always check dependencies:
- Setup > Object Manager > Your Object > Fields > Project_Status__c
- Click “Where is this used?” button
- Review all flows, process builders, and validation rules
- Update each reference BEFORE changing the API name
- Test in sandbox first
Additional Considerations:
- If you have multiple flows using this picklist, create a reusable subflow that handles the picklist value logic
- Use Flow Custom Metadata types to store picklist mappings externally
- Enable Flow Debug Logs (Setup > Process Automation Settings > Enable Debug Logs) to capture detailed error context
- Document all picklist API name changes in your release notes
For your specific scenario, the quickest fix is updating the hardcoded value to “In_Progress”. For long-term maintainability, refactor to use dynamic picklist references or formula fields. This prevents future breaks when picklist definitions change and ensures your flows remain resilient to field metadata updates.