This may or may not be an issue but it's something that I've run into and took more time than it should have to correct. As far as I know this seems to only be a problem with Lando and may have been fixed by the time you read this.
Out of the blue I started getting the error message when I was trying to deploy an update to a Drupal site.
The lock file is not up to date with the latest changes in composer.json, it is recommended that you run `composer update` or `composer update <package name>`.
At first I couldn't figure out why this was happening and thought that it had something to do with the build containers and artifacts. The command that the job was failing on was
vendor/bin/robo job:build so I tried running it within my local Docker container
Lando ssh -c "./vendor/bin/robo job:build"
No biggie, I can just run
composer update like it says and everything should be peachy keen.
lando composer update # Nope lando composer install # Not the preferred way but still didn't work. lando composer update --lock # Nope lando composer update --lock --no-cache # Still no rm composer.lock # Now it's just gone and the following won't bring it back. lando composer update --lock --no-cache lando composer update --lock lando composer install rm -rf vendor # Now we're getting desperate lando composer update # Yay! composer.json and composer.lock are sync'd.
That only fixes the problem until you need to make updates to the composer.lock file. What I ended up doing is running
composer natively to update the lock file.
lando composer require drupal/pathauto composer update --lock-file --ignore-platform-reqs
As I said previously, this may simply be an issue with my work Mac since there is no problem on my Gentoo desktop. At the very least this was a learning experience.