SwiftData fatal error: Failed to locate relationship for StringCodingKey

I'm experiencing a new error in SwiftData since updating to Xcode 16/iOS 17 DB1. When passing in a model (Student) to a view and then displaying an array of Points using ForEach, I get the following fatal error:

SwiftData/ModelCoders.swift:2438: Fatal error: Failed to locate relationship for StringCodingKey(stringValue: "group", intValue: nil) on Entity - name: Point
  superentity: 
  subentities:
  storedProperties:
    CompositeAttribute - name: type, options: [], valueType: PointType, defaultValue: nil
      Properties:
        Attribute - name: type, options: [], valueType: String, defaultValue: nil, hashModifier: nil
    Relationship - name: outcome, options: [], valueType: Outcome, destination: Outcome, inverseName:  nil, inverseKeypath: nil
    CompositeAttribute - name: proficiency, options: [], valueType: Proficiency, defaultValue: nil
      Properties:
        Attribute - name: proficiency, options: [], valueType: String, defaultValue: nil, hashModifier: nil
    Attribute - name: date, options: [], valueType: Date, defaultValue: nil, hashModifier: nil
    Attribute - name: note, options: [], valueType: String, defaultValue: nil, hashModifier: nil
    Relationship - name: student, options: [], valueType: Optional<Student>, destination: Student, inverseName: points, inverseKeypath: Optional(\Student.points)
    Attribute - name: group, options: [], valueType: Array<PersistentIdentifier>, defaultValue: [], hashModifier: nil
  inheritedProperties:
  uniquenessConstraints:
  indices:

Xcode flags this line of the macro-generated getter of the outcome property on Point:

    @storageRestrictions(accesses: _$backingData, initializes: _outcome)
    init(initialValue) {
        _$backingData.setValue(forKey: \.outcome, to: initialValue)
        _outcome = _SwiftDataNoType()
    }
    get {
        _$observationRegistrar.access(self, keyPath: \.outcome)
        return self.getValue(forKey: \.outcome) // Fatal error: Failed to locate relationship for StringCodingKey...
    }
    set {
        _$observationRegistrar.withMutation(of: self, keyPath: \.outcome) {
            self.setValue(forKey: \.outcome, to: newValue)
        }
    }

This worked just fine in iOS 17. Here's a snippet of the Student implementation:

@Model
class Student: Identifiable, Comparable {
    var name: String
    var number: Int

    @Relationship(deleteRule: .cascade, inverse: \Point.student) var points: [Point]
    @Relationship(deleteRule: .cascade, inverse: \Mark.student) var marks: [Mark]
    @Relationship(deleteRule: .nullify, inverse: \StudentGroup.students) var groups: [StudentGroup] = []

    var archived: Bool
}

and the implementation of Point:

@Model
class Point: Identifiable, Comparable {
    var student: Student?

    var type: PointType
    var outcome: Outcome
    var proficiency: Proficiency
    var group: [Student.ID] = []

    var date: Date
    var note: String
}

and finally the implementation for Outcome:

@Model
class Outcome: Identifiable, Comparable {
    var name: String
    var index: Int
    var rubric: Rubric?
    var proficiencies: [Proficiency]
}

I've tried adding a relationship in Outcome as an inverse of the outcomes property on Points (although this does not make sense in my implementation, which is why I initially did not set a relationship here) and the problem persisted.

Any ideas what this error means and how I might go about fixing it?

SwiftData fatal error: Failed to locate relationship for StringCodingKey
 
 
Q