SIS Imports - Show Robust Errors and Human-Friendly logs

This is based on idea posted by Chris Sweets that got 52 votes and 13 comments:  Robust Errors for SIS Import


Problem:  The SIS Import History is not in a Human-Readable Format

For all SIS Imports, even if 100% successful, the following data needs to be included: 

  • Upload Time
  • Begin Time
  • End Time
  • Import completion time (in hours/minutes/seconds) - not currently listed
  • Number of records imported
  • Imported Items (Courses, sections, users, enrollments, etc)
  • Status:  Completed, Imported with Messages, Failed, etc.
  • Reformat logs for previous SIS Imports into a human-readable format.
  • Include a link to the error logs for previous SIS Import batches


Problem:  There is no easy way to see details about SIS Import Errors - information is vague

Example: We had a problem with our users file.  It has >30,000 rows and we had a student with a quote in her name "Denise", which caused the file to fail and not even load.  We would get a "malformed CSV" error.  This was REALLY hard to find in our file and took probably 5 hours of trial and error to find the line with the error since we didn't know which line or what could be causing the malformed error.


Example: Problem file that kept uploading via our automated process and we didn't realize that it was causing all of the other files to back up and we ended up having to call and have an engineer cancel all of our SIS imports because we had probably 20 files in the queue.  It was a mess because we have no way of canceling on our side, and even support and our CSM can't do it.  It took several hours for the engineer to cancel everything in the queue.


Example From Marissa Zelmanowicz

I feel this feature is MUCH needed, as we frequently get long lists of 60+ errors stating "canvas_enrollments.csv - An enrollment listed a section and a course that are unrelated" and have no idea what course and enrollment it is referencing. Each time this error appears, hours upon hours of digging is required to try to fix the issue. Since we have thousands of entries coming from our SIS each night, this is a very time consuming and frustrating process.



If an error is thrown, the following data in a READABLE, non JSON format would go a long way to helping admins figure out the problem and get us back to being productive. 

  • File Name of CSV File that had error
  • Type of import (courses, sections, users, enrollments, etc)
  • The line number of the data file that caused the error in the .csv should be included.
  • Field with Error (if possible)
  • Type of Error (invalid character is the one we usually run into)
  • Status:  Did it skip the line and move on or did it prevent any further records from importing?



Would be nice: 

  • Add automated email options for errors and warning.  This will allow admins to keep an eye on automated imports.
  • Have the ability to email the warnings that happen during an import to an admin.  Especially when these imports are automated and/or take hours, it's important to know about any errors.
  • Ability to search for imports from a certain date or date range or Job ID #
  • Ability to see all past history without having to do an API call




Format the error logs for previous SIS Import batches in a readable format.  We call the log page the "ugly page" at Seminole. 
PLEASE have the import status of prior SIS imports available in a HUMAN-READABLE format!


Thank you!

Instructure Alumni
Instructure Alumni

This idea has moved to the next stage and will be open for voting among the Canvas Community, from Wed. January 6, 2016 - Wed. April 6, 2016.

Check out this doc for additional details about how the voting process works!

Community Contributor

This would be a huge help in tracking down SIS import errors.

Community Champion

We just had another instance of this.  I had 1800 enrollments that failed to process because the users didn't exist.  Turns out that a user had a tilde ~ in their username.  I guess Canvas doesn't like that.  I started going through the failed enrollments to see if I could find the problem user, because the users file has over 30,000 entries.  Since the enrollment file only shows the student id number, I had to go into the SIS (PeopleSoft) and start looking up student information one by one by username so that I could determine what the problem was. 

When there is an invalid sis_id in the users file, it completely breaks and stops running. 

All it says in the error is "SCSB027_USERS_2016-01-06_2161_3056094.csv","Failed saving user. Internal error: unique_id is invalid"

No line number, no indication of which record it could be. I've never been able to even get support to be able to help me identify a bad entry. They seem to see the same (lack of) information on their end. 

This lack of information when there are errors is honestly a huge problem.  I was lucky that it was in the top 10 or it could have taken me days to solve this. 

Community Champion

Definitely need this.  Our import failed last night and the only message said ask support.  I put in a case this morning but no answer so I have no idea if my imports this weekend will work or not. 

Community Contributor

I think the ability to see detailed information about a warning/error message is crucial, and could save institutions from having to contact Instructure just to understand what the information provided by Canvas *actually* means. 

Moreover, hopefully this feature is understood by Instructure as a feature request for improving the SIS imports API *as well as* the user interface that presents this information to admins in Canvas (which I assume simply rephrases the responses obtained via the SIS imports API).

Community Novice

SIS Import with the "Override UI changes" option unchecked is used for removing unoffered courses every semester. Courses will not be deleted when attributes (e.g. published) have been modified through UI since creation.  It is a nice "built-in" check to avoid accidental removal of "modified" courses since creation.  However, at the moment, there aren't any warnings/messages about the which courses couldn't be deleted due to UI changes.  It will be very useful for admin to have it implemented.

Community Novice

Hi - thanks so much for these suggestions.  I wanted to let you know of several error reporting improvements were recently implemented for SIS imports:

  • Added: user_id, login_id of failed user if available when encountering the following error: "unique_id is invalid".
  • Added: section_id, course_id if available when encountering the following error: "user XXX didn’t exist for user enrollment".
  • Added: Errors contain user_id if available when encountering the following error: "neither course XXX or section XXX existed for user enrollment"

The goal is to make it easier to troubleshoot errors raised during imports.

We will log the additional suggestions for consideration for future enhancements to SIS imports.

Thanks - Linda

Community Champion

Thanks, Linda!  I think the other major one is for users...if there are invalid characters it completely breaks and just says "invalid csv" instead of giving the line number.  Which is a problem to find in a 45k line file Smiley Sad

If I had to pick my top sis import need, fixing that would be a huge help! 

Community Contributor

Thanks Linda for giving us the details of the additions to the SIS imports API!

Community Team
Community Team
  Idea is currently in Product Radar Learn more about this stage...
Community Champion

 @oweng ​

Wow!  Would you be willing to share how you did that? 



Community Contributor

In addition to Joni's request, Greg, I'm curious about how you solved the part of 'show robust errors + user friendly logs'. Or, if you haven't,  does your tool simply show the errors spit out by the API? Would be great if you could post one or more screenshots of the tool in action. Thanks!

Community Novice

Hi  @millerjm ‌/ pgo586‌,

Did you hear back from  @oweng ‌ regarding the tool? Is the tool in existence?



Community Contributor

Unfortunately I never heard back. I'm also unable to see any screenshot, as mentioned by Greg.

Community Champion

No, I haven't heard anything.  Smiley Sad

Community Champion

This one killed us again this week.  A special character in a student name.  For state reporting purposes the name should match the birth certificate but the import won't take it and doesn't give you anything to help determine what is wrong.

Community Novice

Alright. Me and my team at school are going to build a tool for this purpose. Wish me luck!!

Community Novice

1. I have a windows service that monitors the api/v1/accounts/1/sis_imports.json url. The url returns back a json objects, so I just loop the object to extract the metadata. I then store the data into a sql table which then gets displayed on the ui. 

I built this because we run the imports each hour so it wanted a tool to show the %completed, so I know which files are currently being imported. I also wanted to store the errors. I haven't had time, but i want to parse the errors as well.


Let me know if you have questions, or maybe a better way.


Community Novice

Hi Greg,

That is pretty nice service. We are planning to implement it in a similar fashion, but as an LTI. So, it will be good if we can collaborate on it. 

We plan on creating a nice visual of errors and warnings for better readability.

Waiting to hear from you.

Community Champion

 @lfeng1 ‌, has there been any movement on implementing any more improvements to the SIS imports error reporting?  

I noticed another one that has not as much useful information as it could have for ENROLLLMENT.  

            An enrollment referenced a non-existent section 2174-5987

does not contain the user_id - any chance that information could be added?  

Thank you,