I'm going to hold off on this for now. The application works correctly in the face of a synthetically produced UserData JSON entry missing the project ID, so defaults are happening somewhere else.