Import Course Content should always be non-destructive


When importing content from previous courses, sometimes instructors choose "all content" expecting that this will add their old content to the new site. Instead, it overwrites the existing site's content with the materials from the old site in some circumstances. Importing course content should always be a non-destructive process.

Community Champion

It has been my experience that importing only adds, never overwrites. The only exception I've seen is the syllabus. 
Are there other places where content is overwritten?

Community Participant

A few times per year, we are contacted by instructors who did the following:

  1. Successfully import content from "old" to "new" site
  2. Revise content in "new" site
  3. Repeat the import content process -- either all content or some content

Instructors expect that this will create a duplicate in their new site (seeing their revised content alongside the old imported version), but instead this workflow can result in the revised "new" content being replaced with the "old" content.

It looks like this has come up in the Community before ( ), with some difficulty reproducing the unexpected behavior -- but an instructor commenting in October 2017 that she lost a bit of work in a new course after setting it up and then importing old content.

Community Novice

I would like to re-iterate the need to have content imports *not* overwrite existing content. One incident caused an instructor to lose an assignment which already had student submissions and grades. Another incident occurred in a course with almost 500 students -- three of the quizzes were overwritten and the grades somehow were shifted to another set of three quizzes. 

This is can be and has been very disruptive to instructors who experience this issue. If Canvas accepts this as expected behavior, the least that can be done is to have a warning message pop up at the time of import that warns instructors that their content will be overwritten. 

Community Champion

 @tdelillo ‌ - I thought it "added to" as well, but just now tried it with my practice course and it did, in fact, completely overwrite all the content with the second course.

Community Explorer

Also under the 'non-destructive process' umbrella: 

Community Champion

cholling, does /undelete added to the URL return any of the overwritten content?

Community Champion

No, unfortunately, Ira. 😞

Community Participant

Importing or resetting can also break all the URLs.  The URL to the course and all its items can change.

Community Champion

And I just tried it again, and it ADDED and did not wipe out the existing content. WHAT IS HAPPENING???

Do you recall your exact process? In my test, I tried copying a course and also importing a .imscc package, and neither overwrote.

Community Champion

I went into my existing practice course, and chose Settings : Import Course Content. So, I never touched an import package. Perhaps this is our solution -- using Import overwrites. Importing a package retains. ?

Community Contributor

I'm glad to see this idea out in the open to be voted upon, even though this may represent a paradigm shift for Canvas and the experience it creates for its developer-users. I thought that the only time an overwrite really happens it when a course or module originates in Canvas Commons and then, after the teacher modifies content, copies the same updated commons content back into the course. Our suggestion in this situation has been to duplicate whatever element is to be modified before making changes, and then hiding the original from students by unpublishing it. That way, when updated content is copied from commons the modified content in the receiving course isn't overwritten.

Of course, as  @holtond1 ‌ points out, internal links elsewhere in the course could also be broken if they point to the original content. I think the big ask in this idea and the comments from  @hughesa , for example, is for the developers at Instructure to consider this use case scenario, and tame the import-update features to be non-destructive to existing content.

Community Champion

But you were using the "Copy a Canvas Course" option, correct? I tried that path as well, and it did not overwrite. Perhaps there's a master setting somewhere that we don't know about?

Coach Emeritus

I also, have never had a course copy overwrite existing content. At least not in 6 years, at three different account and for none of my users at my primary account where I am the admin.

In fact, I had never heard of it until this post.


Community Contributor

I've seen this when a teacher re-imports content from the same course (as the first time) and the quizzes/assignments have the same id. We had it change the grades on the students who had taken the quiz (original had been out of 10 and the new was out of 9).

Community Contributor

We have had the same experience. It only seems to happen if the course content originated in the same course into which it later gets imported. My guess is that it happens because the page/assignment ID end up being the same.

I agree that this should never happen and it has resulted in some pretty catastrophic course events.

Community Novice

Hi Canvas Developer.....Should there be options including Add, Merge or Overwrite in the Import feature?

Community Champion

I have also had this issue. It's very frustrating to have a quiz students have already taken be "eaten" by an older version of the quiz from an import.

In my case, I was trying to put a fresh copy of a chapter review quiz as one of the options for finals review, so I made a "new" import of that quiz from my previous year's course. Since I'd already imported that quiz over when I'd copied the whole course at the start of the term, I lost my previously-assigned chapter review quiz (which I had edited from the version in the previous year's course) and it was a giant mess.

It's totally non-intuitive that this would happen, particularly if you've done extensive edits since your last import and don't necessarily remember what mapped to what or which things were from which prior course. It would be like if when making a paper finals review and copying a old practice test out of one of those teacher resource books, it released gremlins that went into your gradebook and changed everyone's grades on the last time you offered that review page.

Community Novice

After discussing this issue with our CSM, it was suggested that we propose a solution as part of this feature idea, so here is mine:

Screenshot of import settings with proposed section on choosing whether new content replaces previously imported content or becomes a copy

Wording would have to be improved, but the general idea is to add a set of options before the import that lets instructors choose whether to have newly imported items replace previously imported items in destination course, or for new copies to be generated.

If "Replace" is selected, there would be a pop-up warning them of the resulting changes:

Screenshot of import settings with proposed pop-up warning that states what will happen to previously imported content in destination course

Community Participant

At Colorado State University, a teacher just inadvertently overwrote her quizzes - YIKES!  
Before the semester, she imported content from the 2017 course to the 2018 course. She made some changes to some of the quizzes (dates, added questions, etc), and students took the quizzes.

Then she wanted/intended to import COPIES of the old quizzes to the course, to create new ones from them, so ran the import course content again, and it DID OVERWRITE THE QUIZZES, since (according to support) the quizzes have the same unique Canvas ID.

This process is Not obvious to the unsuspecting teacher. It NEEDS to include clear options & warnings, to protect the data & users. Let users CHOOSE to overwrite/replace or create copies, and WARN them, giving them an out.

Paula Miranda's visual ideas above are right on!

Please make this feature "goof-proof", to protect the innocent?!

Melody Brake - Colorado State University

Community Novice

I have noticed the general rule (apart from the syllabus page) is that new import items are stacked onto what already exists within a course. However, this did happen to me once when I was importing content for an instructor. Canvas was unable to retrieve the overwritten pages.