Since updating from Craft 3.1.3 to Craft 3.1.4 I started having issues with the project config. After making just a single, simple update in settings and pushing updated project.yaml to the next env I started getting:
Your project.yaml file was created for different versions of Craft and/or plugins than what鈥檚 currently installed.
Try running composer install from your terminal to resolve.
Downgraded to 3.1.3 and the same changes went through as expected.
Applying the same steps on when on Craft 3.1.3 produces correct results (project config changes are applied without any problems).
Potentially narrowed the issue down to this commit: b785163 (changes to services/ProjectConfig => getAreConfigSchemaVersionsCompatible() method.
That change was made to prevent issues in the future. What are the Craft versions on both of your environments? To migrate using the project.yaml file, Craft now requires that both of your environments are on the same DB schema versions for Craft and all of the plugins to avoid unpredictable behavior when codebase might not be what the migrations and project config expects.
If you believe that this is the case, can you send over both of your project.yaml files (source and target) to [email protected]?
Thanks for getting back to me. I have sent an email to [email protected] as I'm lost as to why the same types of changes work for me on 3.1.3 but not 3.1.4.
I'm running into the same issue. Both environments are on Craft 3.1.4 and using the same composer.lock file. It appears the difference is the sort order number being generated in quotes locally vs. live not creating it that way.
example:

We are seeing exactly the same issue.
Worked around by adding a ! before version_compare to lines 668 and 680 in services/ProjectConfig => getAreConfigSchemaVersionsCompatible() method.
if (!version_compare($existingSchema, $incomingSchema, '=')) {
http://php.net/manual/en/function.version-compare.php
When using the optional operator argument, the function will return TRUE if the relationship is the one specified by the operator, FALSE otherwise.
Ugh, software is hard. Sorry about that. I've talked with my yesterday self and he promised never to make stupid mistakes again.
A release should be out soon, but feel free to edit your composer.json file to pull in these changes immediately by requiring Craft like this:
"craftcms/cms": "dev-develop#0aaf1edcbedbbc702c1e483366f61c038f577a82 as 3.1.4"
and running composer update
Most helpful comment
Ugh, software is hard. Sorry about that. I've talked with my yesterday self and he promised never to make stupid mistakes again.
A release should be out soon, but feel free to edit your composer.json file to pull in these changes immediately by requiring Craft like this:
"craftcms/cms": "dev-develop#0aaf1edcbedbbc702c1e483366f61c038f577a82 as 3.1.4"and running
composer update