Index: frontend/src/components/StudentForm/StudentForm.tsx
===================================================================
--- frontend/src/components/StudentForm/StudentForm.tsx	(revision 44a4f6c80e89c5f79f07db73991470211b9d4a25)
+++ frontend/src/components/StudentForm/StudentForm.tsx	(revision b49d770d5f27fe930c5f8c9dd33d16e363b7be64)
@@ -169,5 +169,5 @@
 
 	const toggleSubject = (subject: Subject, semester: number) => {
-		const exists = passedSubjectsPerSemester[semester].some(
+		const exists = (passedSubjectsPerSemester[semester] || []).some(
 			(s) => s.id === subject.id
 		);
@@ -340,12 +340,15 @@
 							const filteredPassedSubjectsPerSemester = Object.fromEntries(
 								Object.entries(passedSubjectsPerSemester).map(
-									([semester, subjects]) => [
-										semester,
-										subjects.filter(
+									([semester, subjects]) => {
+										const filteredSubjects = subjects.filter(
 											(subj) =>
 												subj.subject_info.mandatory_for.includes(newTrack) ||
 												subj.subject_info.elective_for.includes(newTrack)
-										),
-									]
+										);
+										return [
+											semester,
+											filteredSubjects.length > 0 ? filteredSubjects : [],
+										];
+									}
 								)
 							);
Index: frontend/src/components/StudentForm/SubjectsSelector.tsx
===================================================================
--- frontend/src/components/StudentForm/SubjectsSelector.tsx	(revision 44a4f6c80e89c5f79f07db73991470211b9d4a25)
+++ frontend/src/components/StudentForm/SubjectsSelector.tsx	(revision b49d770d5f27fe930c5f8c9dd33d16e363b7be64)
@@ -76,7 +76,7 @@
 									: seasonElectives;
 
-							const selectedElectivesForSemester = passedSubjectsPerSemester[
-								semester
-							].filter((subject) =>
+							const selectedElectivesForSemester = (
+								passedSubjectsPerSemester[semester] || []
+							).filter((subject) =>
 								subject.subject_info.elective_for.includes(studyTrack)
 							);
@@ -98,7 +98,7 @@
 												<div className="flex flex-wrap gap-2">
 													{semesterMandatory.map((subject) => {
-														const isSelected = passedSubjectsPerSemester[
-															semester
-														].some((s) => s.id === subject.id);
+														const isSelected = (
+															passedSubjectsPerSemester[semester] || []
+														).some((s) => s.id === subject.id);
 														return (
 															<button
