I've encountered an issue with the OpenID option for the users API in Google App Engine that is limited to apps running on a custom domain. When I test my app it works fine in the appspot domain and localhost debugger but crashes on the custom one that I added through the control panel. I managed to get the login with Google Accounts working by asking for the domain to be registered on Google's deprecated OpenID 2 API but the login for any other OpenID account still crashes to an app engine 500 page. It seems that the app engine API just isn't expecting calls from my custom domain.
I can get any screenshots or code snippets that you need to find the issue. I'm also running this in the Java runtime and currently have it in the free quota (so I can't contact Google's support). I did manage to set up a temporary work around for this by redirecting users trying to sign in with non-Google accounts to my appspot domain but this is far from ideal. Any suggestions?
Mihail helped me find a fix for this issue on the App Engine forums here so I figured I'd add it here to help anyone who runs into this issue.
If you append the custom domain name to the URL generation call like this:
String LogInURL = userService.createLoginURL("http://www.example.com/main.jsp", null, openid_URL, null);
It will let the OpenID calls go through on both the custom domain and appspot domain. This will cause the localhost debugger to redirect to your custom domain on login though so it has to be changed to this for debugging:
String LogInURL = userService.createLoginURL("/main.jsp", null, openid_URL, null);