SFDO-Tooling / CumulusCI

Python framework for building portable automation for Salesforce projects
http://cumulusci.readthedocs.io
BSD 3-Clause "New" or "Revised" License
363 stars 242 forks source link

CumulusCI 3.90.0 required schema check breaks our Snowfakery recipe #3814

Closed georgeslater closed 2 months ago

georgeslater commented 3 months ago

Describe the bug

After upgrading from CumulusCI 3.89.0 to 3.90.0, we get the following error when running the generate_and_load_from_yaml task with the options

generator_yaml: datasets/recipes/data_recipe.yml
num_records: 10
num_records_tablename: Account
batch_size: 10000
bulk_mode: parallel

One or more required fields are missing for loading on Case :{'BusinessHoursId'}
One or more required fields are missing for loading on Contact :{'LastName'}

Note that we never had to worry about setting BusinessHoursId before, and since we are using PersonAccounts we are not explicity inserting Contacts at all (as I'm sure you're aware, when you create a person account, you create an Account and the system creates the Contact record).

For now I downgraded to 3.89.0 and everything works again, but it seems that the logic recently added as part of https://github.com/SFDO-Tooling/CumulusCI/pull/3807 does not work for these field describes.

Reproduction steps

Run generate_and_load_from_yaml and create Cases / Person Accounts

Your CumulusCI and Python versions

CumulusCI version: 3.90.0 Python version: 3.12.4

Operating System

macOS Sonoma

Windows environment

No response

CumulusCI installation method

pipx

Error Gist

No response

Additional information

No response

georgeslater commented 2 months ago

I see that https://github.com/SFDO-Tooling/CumulusCI/pull/3817 changes the error to a warning message, so we are now able to upgrade to 3.91.0.

Hopefully this won't ever be an error - in our case, we have a required field that is always set by a trigger, but it would be impossible for CumulusCI to detect that from a schema describe.