diff --git a/api/source/api_modules/classroom_compliance/api_student.d b/api/source/api_modules/classroom_compliance/api_student.d
index e30fa3b..336b6ad 100644
--- a/api/source/api_modules/classroom_compliance/api_student.d
+++ b/api/source/api_modules/classroom_compliance/api_student.d
@@ -218,6 +218,7 @@ void getStudentOverview(ref HttpRequestContext ctx) {
 
 void moveStudentToOtherClass(ref HttpRequestContext ctx) {
     Connection conn = getDb();
+    scope(exit) conn.close();
     conn.setAutoCommit(false);
     User user = getUserOrThrow(ctx, conn);
     auto student = getStudentOrThrow(ctx, conn, user);
diff --git a/app/src/api/classroom_compliance.ts b/app/src/api/classroom_compliance.ts
index 82395f9..940aab7 100644
--- a/app/src/api/classroom_compliance.ts
+++ b/app/src/api/classroom_compliance.ts
@@ -188,7 +188,13 @@ export class ClassroomComplianceAPIClient extends APIClient {
     studentId: number,
     newClassId: number,
   ): APIResponse<void> {
-    return super.put(`/classes/${classId}/students/${studentId}/class`, { classId: newClassId })
+    const url = `/classes/${classId}/students/${studentId}/class`
+    const promise = fetch(this.baseUrl + url, {
+      headers: this.getAuthHeaders(),
+      method: 'PUT',
+      body: JSON.stringify({ classId: newClassId }),
+    })
+    return new APIResponse(this.handleAPIResponseWithNoBody(promise))
   }
 
   deleteStudent(classId: number, studentId: number): APIResponse<void> {