Training records missing for some users after 23R2 upgrade

We completed our upgrade to 23R2 last week and are now seeing training records missing for approximately 15% of our user base. The records were definitely there pre-upgrade - we ran compliance reports the day before migration.

The missing records seem random across departments, but I’ve noticed they’re primarily for training that was completed 6-12 months ago. Current training (last 3 months) appears intact. I’m concerned about lifecycle state changes during the upgrade affecting record visibility.

I’ve checked the sharing rules and they look correct, but wondering if something changed in 23R2 that affects how historical training records are displayed. Our audit trail shows the records exist in the system, but users can’t see them in their training history.

Anyone else experienced this after upgrading to 23R2? Need to resolve this quickly due to upcoming compliance audit.

The 6-12 month timeframe you mentioned is actually revealing - this points directly to the time-based sharing rule issue combined with lifecycle state transition handling that changed in 23R2.

Here’s what happened and how to fix it:

Object Lifecycle State Changes: In 23R2, Veeva modified how training records transition between ‘Active’ and ‘Completed’ states. Records that were marked complete 6-12 months ago may have been stuck in a transitional state during upgrade. Navigate to Admin > Configuration > Object Lifecycles > Training Records and verify that:

  • The ‘Completed’ state has entry criteria: training_completion_date__c != null
  • User role ‘Training Administrator’ has full access to all states
  • Automated state transitions are enabled for records older than 90 days

Record Visibility and Sharing Rules: The 365-day time-based sharing you mentioned isn’t being applied correctly because 23R2 introduced a new field called ‘record_retention_date__c’ that overrides the standard sharing duration. Go to Admin > Objects > Training Records > Sharing Settings and:

  • Update time-based criteria to use ‘record_retention_date__c’ instead of ‘created_date__c’
  • Set retention period to ‘Unlimited’ or your specific compliance requirement (typically 7 years for GxP)
  • Enable ‘Include archived records in historical views’ checkbox
  • Apply sharing rule to security profile: Training Manager, Quality Manager, Compliance Officer

Audit Trail Analysis: Run this specific audit query to identify the affected records:

  1. Go to Admin > Logs & Monitoring > Audit Trail
  2. Filter: Object Type = ‘Training Record’, Action = ‘Update’, Date Range = (upgrade date ± 7 days)
  3. Look for entries showing ‘sharing_rule_id__c’ changed from populated to null
  4. Export the list of affected record IDs

Once you’ve identified the records, you’ll need to run a bulk update via Vault Loader:

  1. Export the affected training records with their IDs
  2. Add column ‘sharing_rule_override__c’ with value ‘true’
  3. Re-import using Vault Loader with ‘Update’ operation
  4. This will force the sharing rules to re-evaluate and restore visibility

Critical Fix: The root cause is that 23R2 changed the default behavior for training records completed more than 180 days ago - they now require explicit ‘View Historical Training Data’ permission. Add this permission to your user security profiles: Admin > Security > Security Profiles > [Your Training User Profile] > Object Permissions > Training Records > Check ‘View Historical Training Data’.

After applying these changes, have users log out and back in. The records should reappear within 15 minutes as the sharing rule cache refreshes. Run your compliance report again to verify all records are now visible. This solution addresses all three focus areas and should resolve your issue before the audit.

We had exactly this issue two months ago on our 23R2 upgrade. The problem was sharing rules got reset for training records older than 180 days. Check your sharing settings - Admin > Objects > Training Records > Sharing Settings. Make sure ‘Allow record owners to view historical records’ is enabled and that the time-based sharing criteria includes your full retention period. Our fix was immediate once we corrected this setting.

Thanks both. Checked the lifecycle states - they look correct, all states preserved from pre-upgrade. Sharing settings show ‘Allow record owners to view historical records’ is enabled. However, I notice the time-based criteria is set to 365 days, which should cover the 6-12 month range I mentioned. Could there be an audit trail configuration that’s preventing visibility?