This is caused by (but not limited to) the following scenarios:
1. You have
locked buildpacks within your
cf buildpacks. Buildpacks must be unlocked for PCF to upgrade them to the versions with proper stack associations. PCF does this for you during the PAS tile upgrade. You can do this through the following command:
cf update-buildpack <buildpack-name> -s <stack> --unlock
2. Your
cf buildpacks output shows that
some buildpacks have an associated stack, but
not all. For example:

To fix this, you must update the buildpack to have an associated stack, by performing one of the following steps:
- Use the cf update-buildpack <buildpack-name> -s <stack> command. This should work as of CF-CLI v6.39.0.
- Use cf curl on the Assign Buildpack to Stack CAPI endpoint. For example:
- Obtain the guid of your buildpack through the following command: cf curl /v2/buildpacks
- Look through the JSON output for the name of your buildpack and look for the metadata associated with that buildpack. There will be a guid attribute for that buildpack.
- If you have the excellent jq tool installed, you can run the following command to automatically find your buildpack guid:
Note: Insert the name of your buildpack into this command.
cf curl /v2/buildpacks | jq -r '.resources[] | select(.entity.name == "<buildpack name goes here>") | .metadata.guid
With the buildpack guid, you can now update the stack for that buildpack running the following command:
cf curl -X PUT /v2/buildpacks/<buildpack guid goes here> -d '{"stack": "cflinuxfs3"}'
It also is possible to delete the buildpack through the command, however this option is the least desirable:
cf delete-buildpack <buildpack-name> -s <stack>
3. If you have
custom buildpacks that share a name with one of PCF's default buildpacks, this can trick the validation process. You can fix this by re-uploading the
custom buildpack with a different name that does not match the name of any default buildpacks in PCF.