Xamarin Realm UNBIND event

Hi everyone!
I’m trying to use Realm sync with Realm .NET v10.10.0(Xamarin).

When I’m running the app I get below error,

Realms.Exceptions.RealmException: ‘A system error occurred while opening a Realm. See InnerException for more details.’

And here is the log event.

My Schema,

{
  "bsonType": "object",
  "properties": {
    "Amount": {
      "bsonType": "double"
    },
    "CustomerDetails": {
      "bsonType": "object",
      "properties": {
        "Name": {
          "bsonType": "string"
        },
        "Telephone": {
          "bsonType": "int"
        }
      }
    },
    "Date": {
      "bsonType": "date"
    },
    "Description": {
      "bsonType": "string"
    },
    "Gms": {
      "bsonType": "int"
    },
    "InvoiceNO": {
      "bsonType": "string"
    },
    "ItemNo": {
      "bsonType": "string"
    },
    "Mg": {
      "bsonType": "int"
    },
    "TotalAmount": {
      "bsonType": "double"
    },
    "_id": {
      "bsonType": "objectId"
    },
    "_partition": {
      "bsonType": "string"
    },
    "UserID": {
      "bsonType": "string"
    }
  },
  "required": [
    "_id",
    "_partition",
    "UserID"
  ],
  "title": "Item"
}

My Model

    public class Item : RealmObject
    {
        [PrimaryKey]
        [MapTo("_id")]
        public ObjectId Id { get; set; }
        public double Amount { get; set; }
        public CustomerDetails CustomerDetails { get; set; }
        public DateTimeOffset? Date { get; set; }
        public string Description { get; set; }
        public int Gms { get; set; }
        public string InvoiceNO { get; set; }
        public string ItemNo { get; set; }
        public int Mg { get; set; }
        public double TotalAmount { get; set; }

        [MapTo("_partition")]
        [Required]
        public string Partition { get; set; }

        [Required]
        public string UserID { get; set; }
    }

Method for Realm activity

        private async void RealmSync()
        {
            var app = Realms.Sync.App.Create("_app-id");
            var user = await app.LogInAsync(Credentials.EmailPassword("emai@email", "password"));
            //var user = await app.LogInAsync(Credentials.Anonymous());
            var config = new PartitionSyncConfiguration("_partition", user);

            var realm = await Realm.GetInstanceAsync(config);

            //await realm.GetSession().WaitForDownloadAsync();

            realm.Write(() =>
            {
                realm.Add(new Item()
                {
                    Id = new ObjectId(),
                    ItemNo = "K-450",
                    Description = "Nice description",
                    Gms = 5,
                    Mg = 9,
                    Amount = 10000,
                    TotalAmount = 120000,
                    CustomerDetails = new CustomerDetails
                    {
                        Name = "A B C Name",
                        Telephone = 1234567890
                    },
                    InvoiceNO = "C12345",
                    Date = DateTime.Now,
                    Partition = "_partition",
                    UserID = "62306e3ac00255a71fc2f5dd"
                });
            });
		}

Permitions used in sync

Please can you tell me what’s I’m doing wrong?
Thank you!

Can you post the inner exception of the error you’re getting? Also, it might be helpful to post the client-side sync logs. You can write them to a file like:

using Realms.Logging;

...

// Before you open a Realm
Logger.LogLevel = LogLevel.All;
Logger.Default = Logger.File("c:\\unbind-error.log");
2 Likes

Thank you for response.

Delow is the log,

2022-03-14 20:06:01.512 Debug: Realm sync client ([realm-core-11.9.0])
2022-03-14 20:06:01.554 Debug: Supported protocol versions: 2-3
2022-03-14 20:06:01.554 Debug: Platform: Android Linux 5.10.43-android12-9-00031-g02d62d5cece1-ab7792588 #1 SMP PREEMPT Mon Oct 4 21:48:11 UTC 2021 x86_64
2022-03-14 20:06:01.554 Debug: Build mode: Release
2022-03-14 20:06:01.555 Debug: Config param: one_connection_per_session = true
2022-03-14 20:06:01.555 Debug: Config param: connect_timeout = 120000 ms
2022-03-14 20:06:01.555 Debug: Config param: connection_linger_time = 30000 ms
2022-03-14 20:06:01.555 Debug: Config param: ping_keepalive_period = 60000 ms
2022-03-14 20:06:01.555 Debug: Config param: pong_keepalive_timeout = 120000 ms
2022-03-14 20:06:01.555 Debug: Config param: fast_reconnect_limit = 60000 ms
2022-03-14 20:06:01.555 Debug: Config param: disable_upload_compaction = false
2022-03-14 20:06:01.555 Debug: Config param: disable_sync_to_disk = false
2022-03-14 20:06:01.556 Debug: User agent string: 'RealmSync/11.9.0 (Android Linux 5.10.43-android12-9-00031-g02d62d5cece1-ab7792588 #1 SMP PREEMPT Mon Oct 4 21:48:11 UTC 2021 x86_64)  '
2022-03-14 20:06:01.562 Detail: Connection[1]: Session[1]: Binding '/data/user/0/com.smalltaskforce.amila_gold_droid/files/mongodb-realm/amila_gold_app-vrpza/62306e3ac00255a71fc2f5dd/s__partition.realm' to '"_partition"'
2022-03-14 20:06:01.563 Debug: Connection[1]: Session[1]: Activating
2022-03-14 20:06:01.563 Info: Connection[1]: Session[1]: client_reset_config = false, Realm exists = true, client reset = false
2022-03-14 20:06:01.563 Debug: Connection[1]: Session[1]: client_file_ident = 10, client_file_ident_salt = 8106352082091856690
2022-03-14 20:06:01.563 Trace: Connection[1]: Session[1]: last_version_available  = 11
2022-03-14 20:06:01.563 Trace: Connection[1]: Session[1]: progress_server_version = 2
2022-03-14 20:06:01.563 Trace: Connection[1]: Session[1]: progress_client_version = 0
2022-03-14 20:06:01.563 Debug: Connection[1]: Session[1]: Progress handler called, downloaded = 320, downloadable(total) = 320, uploaded = 0, uploadable = 0, reliable_download_progress = false, snapshot version = 11
2022-03-14 20:06:01.564 Debug: WebSocket::Websocket()
2022-03-14 20:06:01.564 Detail: Resolving 'ws.realm.mongodb.com:443'
2022-03-14 20:06:02.006 Detail: Connecting to endpoint '18.136.255.153:443' (1/1)
2022-03-14 20:06:02.061 Info: Connected to endpoint '18.136.255.153:443' (from '10.0.2.16:46574')
2022-03-14 20:06:02.121 Debug: Verifying server SSL certificate using root certificates, host name = ws.realm.mongodb.com, server port = 443, certificate =
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----

2022-03-14 20:06:02.122 Info: Verifying server SSL certificate using 155 root certificates
2022-03-14 20:06:02.141 Debug: Server SSL certificate verified using root certificate(147):
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkG
A1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUw
EwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBP
MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3Jv
dXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBAK3oJHP0FDfzm54rVygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj
/RQSa78f0uoxmyF+0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7i
S4+3mX6UA5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3Hs
LuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02
dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUvKBds0pjBqAlkd25HN7rOrFle
aJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFuhjuefXKnEgV4We0+UXgVCwOPjdAv
BbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymC
zLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC
1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZLubhzEFnT
IZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV0nxv
wuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt
hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztX
OoJwTdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIu
vtd7u+Nxe5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1N
bdWhscdCb+ZAJzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4k
qKOJ2qxq4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcY
xn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----

2022-03-14 20:06:02.141 Debug: WebSocket::initiate_client_handshake()
2022-03-14 20:06:02.142 Trace: HTTP request =
GET /api/client/v2.0/app/amila_gold_app-vrpza/realm-sync?baas_at=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJiYWFzX2RldmljZV9pZCI6IjYyMzM1NzIyMTFmNjE3ZTI2Zjk0NDE0ZSIsImJhYXNfZG9tYWluX2lkIjoiNjIzMDZlMGZjMDAyNTVhNzFmYzJmMWY1IiwiZXhwIjoxNjQ3NTMzNjExLCJpYXQiOjE2NDc1MzE4MTAsImlzcyI6IjYyMzM1NzIyMTFmNjE3ZTI2Zjk0NDE2NSIsInN0aXRjaF9kZXZJZCI6IjYyMzM1NzIyMTFmNjE3ZTI2Zjk0NDE0ZSIsInN0aXRjaF9kb21haW5JZCI6IjYyMzA2ZTBmYzAwMjU1YTcxZmMyZjFmNSIsInN1YiI6IjYyMzA2ZTNhYzAwMjU1YTcxZmMyZjVkZCIsInR5cCI6ImFjY2VzcyJ9.cGYcHZh8u5j0ysJhF811u66Qy9QL-YmCdEhFgWnRn6Y HTTP/1.1
Host: ws.realm.mongodb.com
Connection: Upgrade
Sec-WebSocket-Key: 0qHGhJy298dIvNC1JwsTOw==
Sec-WebSocket-Protocol: com.mongodb.realm-sync/3, com.mongodb.realm-sync/2
Sec-WebSocket-Version: 13
Upgrade: websocket
User-Agent: RealmSync/11.9.0 (Android Linux 5.10.43-android12-9-00031-g02d62d5cece1-ab7792588 #1 SMP PREEMPT Mon Oct 4 21:48:11 UTC 2021 x86_64)


2022-03-14 20:06:02.612 Debug: WebSocket::handle_http_response_received()
2022-03-14 20:06:02.612 Trace: HTTP response = HTTP/1.1 101 Switching Protocols
cache-control: no-cache, no-store, must-revalidate
connection: Upgrade
date: Thu, 17 Mar 2022 15:43:33 GMT
sec-websocket-accept: mUnnsdm52BxaFweIhV4NmJUg9ow=
sec-websocket-protocol: com.mongodb.realm-sync/3
server: envoy
upgrade: websocket
vary: Origin
x-frame-options: DENY


2022-03-14 20:06:02.612 Detail: Connection[1]: Negotiated protocol version: 3
2022-03-14 20:06:02.612 Debug: Connection[1]: Will emit a ping in 58171 milliseconds
2022-03-14 20:06:02.613 Debug: Connection[1]: Session[1]: Sending: IDENT(client_file_ident=10, client_file_ident_salt=8106352082091856690, scan_server_version=2, scan_client_version=0, latest_server_version=2, latest_server_version_salt=7034619029829430569)
2022-03-14 20:06:02.613 Debug: Connection[1]: Session[1]: Sending: MARK(request_ident=2)
2022-03-14 20:06:05.967 Trace: Connection[1]: Download message compression: is_body_compressed = false, compressed_body_size=0, uncompressed_body_size=0
2022-03-14 20:06:05.967 Debug: Connection[1]: Session[1]: Received: DOWNLOAD(download_server_version=2, download_client_version=0, latest_server_version=2, latest_server_version_salt=7034619029829430569, upload_client_version=11, upload_server_version=2, downloadable_bytes=0, last_in_batch=true, query_version=0, num_changesets=0, ...)
2022-03-14 20:06:05.971 Debug: Connection[1]: Session[1]: Progress handler called, downloaded = 320, downloadable(total) = 320, uploaded = 0, uploadable = 0, reliable_download_progress = true, snapshot version = 12
2022-03-14 20:06:06.343 Debug: Connection[1]: Session[1]: Received: MARK(request_ident=2)
2022-03-14 20:06:06.344 Debug: Connection[1]: Session[1]: Sending: UPLOAD(progress_client_version=12, progress_server_version=2, locked_server_version=2, num_changesets=0)
2022-03-14 20:06:06.363 Debug: Connection[1]: Session[1]: Initiating deactivation
2022-03-14 20:06:06.363 Debug: Connection[1]: Session[1]: Sending: UNBIND
2022-03-14 20:06:06.364 Debug: Connection[1]: Session[1]: Deactivation completed
2022-03-14 20:06:06.364 Info: Connection[1]: Disconnected
2022-03-14 20:06:06.364 Debug: Connection[1]: Destroying connection object

Inner exception

Realms.Exceptions.RealmException
  Message=A system error occurred while opening a Realm. See InnerException for more details.
  Source=mscorlib
  StackTrace:
  at Realms.Sync.SyncConfigurationBase.CreateRealmAsync (System.Threading.CancellationToken cancellationToken) [0x000dc] in D:\a\realm-dotnet\realm-dotnet\Realm\Realm\Configurations\SyncConfigurationBase.cs:91 
  at Amila_Gold_Droid.ViewModels.NewItemViewModel.RealmSync () [0x00124] in D:\Drive Backup\C#\Amila_Gold_Droid\Amila_Gold_Droid\Amila_Gold_Droid\ViewModels\NewItemViewModel.cs:56 
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) [0x00000] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1021 
  at Android.App.SyncContext+<>c__DisplayClass2_0.<Post>b__0 () [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android/Android.App/SyncContext.cs:36 
  at Java.Lang.Thread+RunnableImplementor.Run () [0x00008] in /Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android/Java.Lang/Thread.cs:36 
  at Java.Lang.IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in /Users/builder/azdo/_work/1/s/xamarin-android/src/Mono.Android/obj/Release/monoandroid10/android-31/mcw/Java.Lang.IRunnable.cs:84 
  at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.39(intptr,intptr)

Sync logs look fine to me. The exception though doesn’t include details for the inner exception. Can you post the exception that is returned by the InnerException property on that error? The code should look something like:

try
{
    // Do whatever throws an error
}
catch (Exception ex)
{
    var innerEx = ex.InnerException;
    // log innerEx
}
2 Likes

This is inner exception. I didn’t make it required anywhere :thinking:
image

Dear @nirinchev,
The problem was missing “?” in my model. If I don’t use “?” It’s automatically mark as required for int an double values.

I found it with you support. Really appreciate.
Thank you! :heart:

image

1 Like

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.