Just read this exception message in some code:
"You cannot log responses in a session that has completed."
which is slightly ungrammatical to me (I would need to use the passive "has been completed").
It's interesting the difference between "complete", "finish" and "end" in the context of, say a course.
A student can complete a course but a course cannot complete. A student can finish a course and a course can finish. A course can end but it is somewhat borderline to say a student ended a course (although I might be able to say "the student ended the course on a high note", certainly not "the student ended the course").