I would suggest that you go through a few debug steps to see where it might have failed. Typically it is because you missed a step during the configuration.
Make sure the API are enabled
Re-enabling the APIs might seem obvious, but you can re-enable the APIs with the debug flag. They might have failed silently and did not enable as expected. Try again with the debug flag to identify any potential root causes.
```
Required APIs
iap.googleapis.com // Cloud Identity-Aware Proxy API
apigateway.googleapis.com // API Gateway API
servicemanagement.googleapis.com // Service Management API
servicecontrol.googleapis.com // Service Control API
```
Please note, do not share the output of this command unless you redact any identifiable information first.
Make sure you have set up IAP access correctly
Requests from the API Gateway to any back-end service will most likely use authentication. These requests are secured using OpenID Connect (OIDC) tokens signed by the gateway's service account.
Check to see if your back-end services can accept OIDC tokens for authentication and authorization 1.
Although you have added the IAP-secured Web App User permission to the service account, as per the documentation 2, you also need to add the permission to the Project Owner.
Role-based access: If you're a project owner, you may think that you get automatic access to the app. That is not the case as only accounts with the IAP-secured Web App User role on this project will be given access. Imagine you're in corporate IT implementing IAP access to the HR payroll system. In most scenarios, only the staff on the Payroll team should have access to the app. This is one of the reasons why role-based access is more secure. The owner (or editor, etc.) of a project can manage all aspects of the project but doesn't automatically get app access.