Troubleshooting Google Classroom Guide

Modified on Thu, Jun 8, 2023 at 3:18 PM

Getting Started

  • Create Project in Google Dev Console
    • Make a new project
    • Make sure the Google Classroom API (found by searching) is enabled for project
    • Create Credential
      • Create 2 service accounts
      • This is where the Client ID will first appear
      • If "Show Domain-wide Delegation" is an option, click and then press "enable Google Workspace Domain-wide Delegation"
    • Under service accounts, go to Keys and add key -> create new key, make sure key is JSON (must be done for each service account)
    • Go to Google Admin Console admin.google.com
      • In the menu go to Security then API Controls
      • Scroll to the bottom, hit Manage Domain Wide Delegation
      • Add New -> and copy and paste all scopes from the wiki to the OAuth scopes (comma-delimited) field
        • NOTE - A common issue is that districts will only have scopes for one service account and not another. Errors involving 401 access denied, or invalid token are usually related to this
      • Copy the client id for the created service account, and paste in the Client ID field
      • Press authorize and repeat for any other service account
    • Last step is to upload the service accounts into Genesis, one into the admin queue, and one into the gradebook queue in Setup -> Google -> Setup -> Service Accounts
    • POTENTIAL ISSUES FROM SETUP
      • A common issue is that districts will only have scopes for one service account and not another. Errors involving 401 access denied, or invalid token are usually related to this
      • If the logs reference a file not being found, the Request queue( Setup -> Google -> Classroom Setup -> Request Queue) must be disabled and re-enabled
      • If one queue works (all admin requests go through, but the requests from gradebook do not) this is caused by the service account for that queue. In this case, the gradebook service account would have to be checked that it is
        • Added to the Google Admin Console
        • All required scopes have been added


  • Next is to enable the integration in Genesis.
    • Setup -> Google -> Classroom Setup -> Settings
      • Set the admin email
        • Problems arise from this being set incorrectly; wrong email, typo, etc.
      • Naming Scheme sets up the Class Name and Section field when we create google classrooms
      • Enable Google Classroom Button
        • Brings up a pop up where the user can select a gradebook they want to test add/removing a course and enrolling/removing a student for that course into Classroom
        • This is where service account and admin email issues will most commonly surface
      • Invite Students to Google Classroom instead of enrolling
        • Sends invitations instead of directly enrolling students
    • Setup -> Google -> Email Setup and Verification
      • Allows users to set the Google Emails for teachers and students. This is required to successfully add teachers and students to classrooms
      • Warns about users with duplicate email
      • Shows students/staff with no email currently set


  • After everything is set and the integration is enabled, districts can start creating courses and rostering students
    • Can be done from the Setup -> Google -> Classroom Admin -> Gradebooks page, gradebooks with valid teacher emails on the primary teacher can be selected.
      • Under Sync Options select Create Classrooms and Invite Teachers and all selected gradebooks will have a google classroom created and the teacher invited
      • After the Roster Selected Classrooms options can be selected, this will enroll students in classroom for selected gradebooks.
      • NOTE - if the teacher has not accepted to teach the course, then the students will not receive any notification about enrollments until the teacher does so and the class is active

FAQ

  • Are the class source IDs are created new every year or do they recycle old ones? 
    • Since the aliases/sourced ids are linked to the teacher's gradebook they are created every year
  • Can we filter out Classes such as study Halls, lunches, etc?
    •  If these classes do not have an associated gradebook they will not be able to be linked to classroom. In cases where they do have gradebooks you select which courses are sent out to google.
  • Can we control release dates for teacher Google Classrooms? 
    • In the google admin pages you select which courses you want to create and send teachers for
  • Can we control release dates for students being added to Google Classrooms 
    • Similar to above, there is another option on the administrative google pages where you can select classes that you wish to roster in google classroom and have them rostered right then
  • A teacher imported an existing Google Assignment into Genesis, and cannot modify it within Genesis
    • We are unable to modify assignments that originate from Google Classroom, due to this we lock down those fields for those assignments in Genesis
  • When a teacher imports an assignment to Classroom, the due date and time do not make it over
    • One limitation of the Google Classroom API is that we are unable to create assignments with a due date and time that is before right now. If an assignment is due on 11/2/2022 at 11:00am and it is currently 11:01am, we will still create the assignment in Google, but cannot create it with that prior due date and time set
  • What do I need to allow teachers to see the Google Classroom integration in their gradebooks?
    • Staff will need the securable location gradebook.google.sync added to their user.  Teachers without this location will see no difference in their Gradebooks, and will have no access to the integration
  • How soon after enrolling will students be able to see that they are In their Google Classrooms
    • Students will be able to see the google classrooms that were created from Genesis once the teacher accepts their invitation to teach the course
  • I already have classrooms created manually, or from another product, can these be used in the integration?
    • Yes, however teachers will have to go into their gradebooks and manually link their gradebooks to the classroom

Common Errors

  • Assignments not coming down from classroom in Google Hub
    •  If the logs show no errors this is most likely an issue with the alias of the course being mixed up with another. Using the 'Fix Aliases for Google Classrooms' option under 'Setup -> Google -> Classroom Admin -> Gradebooks' should resolve this
  • Rostering/Creating classrooms from 'Setup → Google → Classroom Admin → Gradebooks is taking a long time
    • These calls may take a while, especially rostering, as there must be a request sent for each student and course. In addition, only 600 requests can be made in a minute, per service account. It is recommended that at least 2 service accounts are created for the ADMIN queue during this process to ensure that enough requests can go out.
  • Teacher Denied a course in classroom, and now want to undo it 
    • They can either unlink it themselves and recreate it, or in the "Setup → Google → Classroom Admin → Gradebooks" select the classroom and use the "Reprovision selected Classrooms in Google" under Sync Options
    • On the Live Check search screen you can search for the course, hit modify and change the state to provisioned or active from there
  • Cannot find classroom for a teacher, that is in Google, in the Sync Classroom popup
    • The best way to troubleshoot this issue is via the Setup -> Google -> Classroom Admin -> Live Check Classrooms screen, by searching the google email of the teacher you can see every classroom that they have access too, the state, and whether or not it is linked
    • If the classroom has any state besides ACTIVE it will not appear in the sync popup, such as DENIED, PROVISIONED, or ARCHIVED
    • If the classroom is already linked, it will not appear in the sync popup
  • Student is enrolled in Classroom but not shown as such in Genesis
    • The validate enrollments function from the Modify screen in Genesis for the classroom will allow you ensure that all students are enrolled, and that their current status reflects what is in classroom
  • How are merged gradebooks handled?
    • Merged gradebooks are connected to the same Google Classrooms. Teachers can pull down assignments and grades for these as long as they have access within classroom

Log Errors

These are viewed on Setup -> Google -> Classroom Admin -> Logs, they are highlighted in red and View Error must be clicked to view the message

  • Error getting access token for service account: Connection reset"
    • Most commonly a firewall issue.  The API call out to google at 142.251.(41).x.x over 443 tcp.  It is possible the IP may differ so have your district's network admin perform a capture to diagnose.
  • Error getting access token for service account: 401 Unauthorized POST 
    • Permission issue with a service account.  Check the scopes on both service accounts and ensure they are BOTH added to the Domain Wide Delegation in the Manage Domain Wide Delegation page
  • Error getting access token for service account: 400 Bad Request POST https://oauth2.googleapis.com/token { "error": "invalid_grant", "error_description": "Invalid email or User ID" }
    • The email set as admin for Setup -> Google -> Classroom Setup -> Settings - Admin Email field, is NOT a valid super admin email
  • Unable to directly add user, please confirm their email is in the google workspace domain
    • The email on that user is not is not within the districts workspace domain, so we do not have permission to add them directly to google classroom
  • Entity already exists in the Google Classroom
    • Student is already in classroom
    • Trying to link a Gradebook to Google Classroom
      • If this is returned it most likely means there is a Gradebook with this alias currently on it. To fix this go to Setup -> Google -> Classroom Admin -> Live Check Classrooms and in the Classroom Alias field type in the alias, including the p:. When the course appears, click modify, you should get a warning message, and the alias will have a delete icon next to it, once it is removed from here the course should be able to be synced.
      • Additionally, you can select gradebooks from Setup -> Google -> Classroom Admin -> Gradebooks  and under Sync Options pick Fix Aliases for Google Classrooms,
  • Teacher may already be in course
    • Teacher is most likely already in classroom
  • Requested entity was not found - Very common error
    • If trying to retrieve/add/delete anything involving a Classroom, this error most likely means that the Alias of the course is invalid
      • The course may have an invalid or missing alias. This can be checked by going to Setup -> Google -> Classroom Admin -> Live Check Classrooms, and selecting the Google Email for the teacher who is having this issue. Or if found in the logs clicking the magnifying glass icon to open that page with that classroom already searched for.
        • Press the Modify icon to open the modify page. An alert will appear if the alias is the issue saying that it is causing sync problems.
        • Add Alias to Classroom when pressed will create the alias for you. This only appears if there are no other aliases from Genesis found on the classroom

Terms

  • Alias - How we reference a Google Classroom from gradebook. Formatted as p: + courseid, a course with an id of 11719 should have an alias of p:11719
  • Service Account - The credentials we use to access google classroom
  • Super Admin Email - An email in the districts google workspace  that is a Super Admin and has rights to everything
  • Google Classroom - What the Genesis Gradebook is linked to, where teachers post assignments/grades
  • Course/Class Work - These are the equivalent of assignments in Genesis and are linked to these
  • Return Student Submission - Grades in Genesis






Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article