Skip to content

When using beforeSave on object with a Pointer column - "error: ParseError code=111 error=schema mismatch for Test.test1; expected Pointer<Test1> but got Object" #65

Open
@jaysonng

Description

@jaysonng

When using beforeSave trigger on an object that has a pointer to another object like so:

struct Test: ParseObject {

    //: These are required for `ParseObject`.
    var originalData: Data?
    var objectId: String?
    var createdAt: Date?
    var updatedAt: Date?
    var ACL: ParseACL?

    var name: String?
    var test1: Test1?
}

struct Test1: ParseObject {

    //: These are required for `ParseObject`.
    var originalData: Data?
    var objectId: String?
    var createdAt: Date?
    var updatedAt: Date?
    var ACL: ParseACL?

    var description: String?
    var test2: Test2?
    var test3: Test3?
}

Doing nothing but just having the beforeSave trigger on produces a schema mismatch error where it expects a Pointer to the sub-object.

func beforeSaveTest(req: Request) async throws -> HookResponse<Test> {

        if let error: HookResponse<Test> = checkHeaders(req) { return error }
        
        var parseRequest = try req.content.decode(HookTrigObjReq<User, Test>.self)
        let options      = try parseRequest.options(req)
        
        if parseRequest.user != nil {
            parseRequest = try await parseRequest.hydrateUser(options: options, request: req)
        }
        
        guard let object = parseRequest.object else {
            return ParseHookResponse(error: .init(code: .missingObjectId,
                                                  message: "Object not sent in request."))
        }
        
        return HookResponse(success: object)
        
    }

I encountered this as I was trying to save a complex object with multiple pointers and tested with these Test objects getting the same result.

error: ParseError code=111 error=schema mismatch for Test.test1; expected Pointer<Test1> but got Object

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions