Encryption related exception: Command update failed: A non-static (JSONPointer) keyId is not supported

Hello Gurus…

Need help with the error mentioned in the subject line.

I have this class

public class Patient : Document
{
    [BsonId] public Guid Id { get; set; }
    [JsonIgnore]
    [BsonElement("keyId")]
    public string? KeyId { get; set; } = "demo-data-key";
    public string Name { get; set; } = null!;
    public int SSN { get; set; }
    //This is the encrypted field
    public string? EncryptedPropertyDetails { get; set; }
}

Which uses the following SchemaMap:

BsonDocument schema = new BsonDocument {
    { "bsonType", "object" },
    { "encryptMetadata", new BsonDocument{
            { "keyId", "/keyId"}
        }
    },
    { "properties", new BsonDocument {
            { "EncryptedPropertyDetails", new BsonDocument {
                    { "encrypt", new BsonDocument {
                            { "bsonType", "string" },
                            { "algorithm", "AEAD_AES_256_CBC_HMAC_SHA_512-Random"} 
                        }
                    }
                }
            }
        }
    }
};

Now, with the above, I am able to insert new records and fetch the records properly.

However, whenever I am trying to update the record, getting the above mentioned error.

This is how I am trying to update it:

public async Task UpdatePatientAsync(Guid patiendGuid, Patient patient)
{
    UpdateDefinition<Patient> update = Builders<Patient>.Update
        .Set(x => x.EncryptedPropertyDetails, patient.EncryptedPropertyDetails)
        .Set(x => x.Name, patient.Name)
        .Set(x => x.ModifiedAtUtc, DateTime.UtcNow);

    FilterDefinition<Patient> filter = Builders<Patient>
        .Filter
        .In(x => x.Id, new List<Guid> { patiendGuid });

    await _patientRepository.UpdatePatientAsync(filter, update);
}

Which works fine if I give a static Key Id…

Is there a way to make it work using JSON Pointer?

Thanks in advance!!

Regards,

UB