The roles you've specified (
Project Editor and
App Engine Admin) should be sufficient to allow a given account to deploy an App Engine application to your project. The
Access Control article shows a helpful matrix of App Engine roles and the abilities they grant. You may also want to consider
App Engine Deployer for even more restrictive permissions allowing deployment only, no management of config (dispatch, cron, etc) changes depending on the roles the user plays.
As for the
403 encountered by said user, it may be that the member that you added to the project is not the credential used by that user with they ran
gcloud auth login. They can use
gcloud info to see what account the gcloud commands are being invoked from. If they are logged authenticated with gcloud using
use...@your-domain.com and
use...@your-domain.com has both
Project Editor and
App Engine Admin roles associated with it, I'd recommend filing a new issue with on the
Google Cloud Platform public issue tracker. If doing so, be sure to include a link to it here. This way, I can make the issue private so you can safely provide the project ID, timestamps and username in question so that we can investigate this more thoroughly.