Hello, so I am currently looking into an issue where the documents that are in a specified channel are not syncing to the cb-lite on my device. Our sync function as i understand it the default function:
"databases": {
"dbName": {
"server": "address",
"username": "sync-user",
"password": "DaPassword",
"enable_shared_bucket_access": true,
"import_docs": false,
"num_index_replicas": 0,
"users": {
"GUEST": {
"disabled": false,
"admin_channels": ["public"]
}
},
`sync: function (doc) {
channel(doc.channels);
}`
We are able to sync to public documents but not to ones that belong in a channel.
We have configured the users as such
User Configured As the following Through the admin api:
{"name":"userName","all_channels":["!","EveryChannel","channel1"],"admin_roles":["channel1"],"roles":["channel1"]}
The code that we have is basically the same as the example code:
Android Code:
indent CouchbaseLite.init(applicationContext);
//Create the database (and create it if it doesn't exist).
var config: DatabaseConfiguration = DatabaseConfiguration();
var dbName: String = "myDbNameForSync";
var database: Database = Database(dbName, config);
try{
//Log.i("MainActivity", "Setting Database log console level to verbose");
//Database.log.console.level = LogLevel.VERBOSE;
//Log.i("MainActivity", "Finished setting Database log console level to verbose");
var uri = URI("wss://couchbase-gway-location/bucketName/");
val targetEndpoint: Endpoint = URLEndpoint(uri);
var replConfig = ReplicatorConfiguration(database, targetEndpoint);
replConfig.replicatorType = ReplicatorConfigurationTypes.replicatorType("Pull");
replConfig.authenticator = BasicAuthenticator("Uname"," Pword");
var replicator = Replicator(replConfig);
replicator.addChangeListener { change: ReplicatorChange ->
if (change.status.error != null) {
Log.i("MainActivity", "Error code :: " + change.status.error.code
+ "change.status.error is: " + change.status.error)
}else if ((change.status.activityLevel.toString()) == "STOPPED" || change.status.activityLevel.toString() == "IDLE"){
Log.i("Replication status has changed to: ", "Status Code :: " + change.status.toString());
}else{
Log.i("Getting Info From Buckets and Status is the following: ", "Status Code :: " + change.status.toString());
}
}
// create replicator document listener.
replicator.addDocumentReplicationListener { replication ->
for (document in replication.documents) {
Log.i("MainActivity", "Doc ID: " + document.id)
val err = document.error
if (err != null) {
// There was an error
Log.e(
"MainActivity -> Replication",
"Error replicating document: ",
err
)
}
if (document.flags().contains(DocumentFlag.DocumentFlagsDeleted)) {
Log.i(
"MainActivity -> Replication",
"Successfully replicated a deleted document"
)
}
}
}
// Start Replication.
Log.i("MainActivity", "Starting Replication");
replicator.start();
}catch(error: Exception){
Log.i("Error", "You have an error: $error")
}
Following are my logs.
V/CouchbaseLite/REPLICATOR: {Repl#3} Checkpoint doc ID = cp-Pqqgh9TUYv8iWnC0GgQ4k81A6T4=
2020-04-15 07:03:26.628 27371-27413/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} No local checkpoint ‘cp-Pqqgh9TUYv8iWnC0GgQ4k81A6T4=’
2020-04-15 07:03:26.629 27371-27413/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} activityLevel=connecting: connectionState=1
2020-04-15 07:03:26.644 27371-27421/com.couchbaselite_tutorial D/HostConnection: HostConnection::get() New Host Connection established 0xdc99b380, tid 27421
2020-04-15 07:03:26.663 27371-27421/com.couchbaselite_tutorial D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_0
2020-04-15 07:03:26.666 27371-27421/com.couchbaselite_tutorial I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
2020-04-15 07:03:26.667 27371-27421/com.couchbaselite_tutorial I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
2020-04-15 07:03:26.667 27371-27421/com.couchbaselite_tutorial I/OpenGLRenderer: Initialized EGL, version 1.4
2020-04-15 07:03:26.667 27371-27421/com.couchbaselite_tutorial D/OpenGLRenderer: Swap behavior 1
2020-04-15 07:03:26.667 27371-27421/com.couchbaselite_tutorial W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without…
2020-04-15 07:03:26.667 27371-27421/com.couchbaselite_tutorial D/OpenGLRenderer: Swap behavior 0
2020-04-15 07:03:26.669 27371-27421/com.couchbaselite_tutorial D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 0 0
2020-04-15 07:03:26.669 27371-27421/com.couchbaselite_tutorial D/EGL_emulation: eglCreateContext: 0xdb7dfdc0: maj 3 min 0 rcv 3
2020-04-15 07:03:26.670 27371-27421/com.couchbaselite_tutorial D/EGL_emulation: eglMakeCurrent: 0xdb7dfdc0: ver 3 0 (tinfo 0xe464ddb0)
2020-04-15 07:03:26.713 27371-27421/com.couchbaselite_tutorial D/HostConnection: createUnique: call
2020-04-15 07:03:26.713 27371-27421/com.couchbaselite_tutorial D/HostConnection: HostConnection::get() New Host Connection established 0xdc99b920, tid 27421
2020-04-15 07:03:26.734 27371-27421/com.couchbaselite_tutorial D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_0
2020-04-15 07:03:26.734 27371-27421/com.couchbaselite_tutorial E/eglCodecCommon: GoldfishAddressSpaceHostMemoryAllocator: ioctl_ping failed for device_type=5, ret=-1
2020-04-15 07:03:26.753 27371-27421/com.couchbaselite_tutorial D/EGL_emulation: eglMakeCurrent: 0xdb7dfdc0: ver 3 0 (tinfo 0xe464ddb0)
2020-04-15 07:03:26.755 27371-27421/com.couchbaselite_tutorial D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 3 2
2020-04-15 07:03:27.000 27371-27422/com.couchbaselite_tutorial W/selite_tutoria: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setAlpnProtocols([B)V (light greylist, reflection)
2020-04-15 07:03:27.155 27371-27422/com.couchbaselite_tutorial W/selite_tutoria: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getAlpnSelectedProtocol()[B (light greylist, reflection)
2020-04-15 07:03:27.266 27371-27422/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: WebSocketListener.onOpen() response -> Response{protocol=http/1.1, code=101, message=Switching Protocols, url=https://cb-gateway-location/bucketName_blipsync}
2020-04-15 07:03:27.266 27371-27422/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: receivedHTTPResponse() httpStatus -> 101
2020-04-15 07:03:27.266 27371-27422/com.couchbaselite_tutorial I/CouchbaseLite/NETWORK: CBLWebSocket CONNECTED!
2020-04-15 07:03:27.267 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} activityLevel=connecting: connectionState=1
2020-04-15 07:03:27.267 27371-27422/com.couchbaselite_tutorial I/CouchbaseLite/NETWORK: {N8litecore4blip10ConnectionE#2} Connected!
2020-04-15 07:03:27.268 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} Connected!
2020-04-15 07:03:27.269 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/REPLICATOR: {Repl#3} Requesting remote checkpoint
2020-04-15 07:03:27.269 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} activityLevel=busy: connectionState=2
2020-04-15 07:03:27.270 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} now busy
2020-04-15 07:03:27.272 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: C4ReplicatorListener.statusChanged, context: Replicator{@c07d7b3,<-,Database{@49ce904, name=‘common’},URLEndpoint{url=wss://cb-gateway-location/bucketName}], status: C4ReplicatorStatus{activityLevel=4, progressUnitsCompleted=0, progressUnitsTotal=0, progressDocumentCount=0, errorDomain=0, errorCode=0, errorInternalInfo=0}
2020-04-15 07:03:27.273 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4}==> N8litecore4blip6BLIPIOE ->wss://cb-gateway-location/bucketName_blipsync @0xde4ac440
2020-04-15 07:03:27.276 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} WebSocket is hungry!
2020-04-15 07:03:27.276 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} …Wrote 0 bytes to WebSocket (writeable=1)
2020-04-15 07:03:27.276 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5}==> N8litecore4repl6PullerE ->wss://cb-gateway-location/bucketName_blipsync @0xe46b7b80
2020-04-15 07:03:27.277 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} Starting pull from remote seq
2020-04-15 07:03:27.277 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} activityLevel=busy: pendingResponseCount=1, _caughtUp=0, _pendingRevMessages=0, _activeIncomingRevs=0
2020-04-15 07:03:27.277 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} now busy
2020-04-15 07:03:27.277 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} Sending ‘getCheckpoint’ REQ #1
2020-04-15 07:03:27.278 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} Sending frame: REQ #1 ----, bytes 0–65
2020-04-15 07:03:27.278 27371-27415/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: C4Socket.write() handle -> 3832482344
2020-04-15 07:03:27.278 27371-27430/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: Replicator{@c07d7b3,<-,Database{@49ce904, name=‘common’},URLEndpoint{url=wss://cb-gateway-location/bucketName}]: status changed: C4ReplicatorStatus{activityLevel=4, progressUnitsCompleted=0, progressUnitsTotal=0, progressDocumentCount=0, errorDomain=0, errorCode=0, errorInternalInfo=0}
2020-04-15 07:03:27.279 27371-27430/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: Replicator{@c07d7b3,<-,Database{@49ce904, name=‘common’},URLEndpoint{url=wss://cb-gateway-location/bucketName}] is busy, progress 0/0, error: null
2020-04-15 07:03:27.280 27371-27415/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: completedWrite(long) handle -> 3832482344, byteCount -> 68
2020-04-15 07:03:27.280 27371-27371/com.couchbaselite_tutorial I/Getting Info From Buckets and Status is the following:: Status Code :: Status{activityLevel=BUSY, progress=Progress{completed=0, total=0}, error=null}
2020-04-15 07:03:27.282 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} Finished sending REQ #1
2020-04-15 07:03:27.282 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} …Wrote 68 bytes to WebSocket (writeable=1)
2020-04-15 07:03:27.282 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} pushStatus=stopped, pullStatus=busy, progress=0/0
2020-04-15 07:03:27.282 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} activityLevel=busy: connectionState=2
2020-04-15 07:03:27.282 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} Sending ‘subChanges’ REQ #2
2020-04-15 07:03:27.283 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} Sending frame: REQ #2 ----, bytes 0–33
2020-04-15 07:03:27.283 27371-27415/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: C4Socket.write() handle -> 3832482344
2020-04-15 07:03:27.283 27371-27415/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: completedWrite(long) handle -> 3832482344, byteCount -> 36
2020-04-15 07:03:27.284 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} Finished sending REQ #2
2020-04-15 07:03:27.284 27371-27415/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} …Wrote 36 bytes to WebSocket (writeable=1)
2020-04-15 07:03:27.284 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} activityLevel=busy: connectionState=2
2020-04-15 07:03:27.285 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} activityLevel=busy: pendingResponseCount=1, _caughtUp=0, _pendingRevMessages=0, _activeIncomingRevs=0
2020-04-15 07:03:27.380 27371-27422/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: WebSocketListener.onMessage() bytes -> 020100d202ef8d
2020-04-15 07:03:27.381 27371-27422/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: WebSocketListener.onMessage() bytes -> 0128d20b28ca4fcbcc496548ce48cc4b4f2d6670cecf2b49cd2bd10da92c4865482c28c8c94c4e2cc9cccfd3cf2acecf63c82bcdc901003b80606b
2020-04-15 07:03:27.381 27371-27416/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} Received frame: RES #2 ----, length 5
2020-04-15 07:03:27.381 27371-27422/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: WebSocketListener.onMessage() bytes -> 0102214572726f722d446f6d61696e0048545450004572726f722d436f646500343034006d697373696e67b75cf632
2020-04-15 07:03:27.382 27371-27416/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip10ConnectionE#2} Receiving RES #2
2020-04-15 07:03:27.382 27371-27416/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip10ConnectionE#2} Finished receiving RES #2
2020-04-15 07:03:27.382 27371-27416/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: C4Socket.completedReceive() handle -> 3832482344
2020-04-15 07:03:27.383 27371-27416/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} activityLevel=busy: pendingResponseCount=0, _caughtUp=0, _pendingRevMessages=0, _activeIncomingRevs=0
2020-04-15 07:03:27.384 27371-27413/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} Received frame: REQ #1 --NC, length 57
2020-04-15 07:03:27.385 27371-27413/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip10ConnectionE#2} Receiving ‘changes’ REQ #1 NZ
2020-04-15 07:03:27.387 27371-27413/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip10ConnectionE#2} Finished receiving ‘changes’ REQ #1 NZ
2020-04-15 07:03:27.387 27371-27413/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: C4Socket.completedReceive() handle -> 3832482344
2020-04-15 07:03:27.388 27371-27413/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip6BLIPIOE#4} Received frame: ERR #1 ----, length 45
2020-04-15 07:03:27.388 27371-27413/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip10ConnectionE#2} Receiving ERR #1
2020-04-15 07:03:27.389 27371-27413/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: {N8litecore4blip10ConnectionE#2} Finished receiving ERR #1
2020-04-15 07:03:27.390 27371-27413/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: C4Socket.completedReceive() handle -> 3832482344
2020-04-15 07:03:27.391 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} No remote checkpoint
2020-04-15 07:03:27.392 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} activityLevel=busy: connectionState=2
2020-04-15 07:03:27.394 27371-27414/com.couchbaselite_tutorial V/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} Received ‘changes’ REQ#1 (0 queued; 0 revs pending, 0 active, 0 unfinished)
2020-04-15 07:03:27.394 27371-27414/com.couchbaselite_tutorial V/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} Handling ‘changes’ REQ#1
2020-04-15 07:03:27.395 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} Caught up with remote changes
2020-04-15 07:03:27.395 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} activityLevel=stopped: pendingResponseCount=0, _caughtUp=1, _pendingRevMessages=0, _activeIncomingRevs=0
2020-04-15 07:03:27.395 27371-27414/com.couchbaselite_tutorial V/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} now stopped
2020-04-15 07:03:27.396 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} pushStatus=stopped, pullStatus=stopped, progress=0/0
2020-04-15 07:03:27.396 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} Replication complete! Closing connection
2020-04-15 07:03:27.396 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} Told to stop!
2020-04-15 07:03:27.397 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/NETWORK: {N8litecore4blip10ConnectionE#2} Closing with code 1000, msg ‘’
2020-04-15 07:03:27.397 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} activityLevel=busy: connectionState=3
2020-04-15 07:03:27.398 27371-27413/com.couchbaselite_tutorial I/CouchbaseLite/NETWORK: {N8litecore4repl12C4SocketImplE#6}==> N8litecore4repl12C4SocketImplE wss://cb-gateway-location/bucketName_blipsync @0xe46f0998
2020-04-15 07:03:27.398 27371-27413/com.couchbaselite_tutorial I/CouchbaseLite/NETWORK: {N8litecore4repl12C4SocketImplE#6} Requesting close with status=1000, message=’’
2020-04-15 07:03:27.398 27371-27413/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: C4Socket.requestClose() handle -> 3832482344
2020-04-15 07:03:27.518 27371-27422/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: WebSocketListener.onClosing() code -> 1000, reason ->
2020-04-15 07:03:27.519 27371-27422/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: C4Socket.requestClose() handle -> 3832482344
2020-04-15 07:03:27.519 27371-27422/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: CBLWebSocket.requestClose() Failed to attempt to initiate a graceful shutdown of this web socket.
2020-04-15 07:03:27.519 27371-27422/com.couchbaselite_tutorial V/CouchbaseLite/NETWORK: WebSocketListener.onClosed() code -> 1000, reason ->
2020-04-15 07:03:27.519 27371-27422/com.couchbaselite_tutorial I/CouchbaseLite/NETWORK: {N8litecore4repl12C4SocketImplE#6} sent 104 bytes, rcvd 113, in 0.253 sec (411/sec, 447/sec)
2020-04-15 07:03:27.520 27371-27415/com.couchbaselite_tutorial W/CouchbaseLite/NETWORK: C4Socket.dispose() handle -> 3832482344
2020-04-15 07:03:27.520 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/NETWORK: {N8litecore4blip10ConnectionE#2} Closed with WebSocket status 1000:
2020-04-15 07:03:27.522 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} Connection closed with WebSocket status 1000: “” (state=3)
2020-04-15 07:03:27.523 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} activityLevel=stopped: connectionState=0
2020-04-15 07:03:27.523 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {Repl#3} now stopped
2020-04-15 07:03:27.525 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: {N8litecore4repl6PullerE#5} activityLevel=stopped: pendingResponseCount=0, _caughtUp=1, _pendingRevMessages=0, _activeIncomingRevs=0
2020-04-15 07:03:27.525 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: BLIP sent 2 msgs (104 bytes), rcvd 1 msgs (113 bytes) in 0.259 sec. Max outbox depth was 1, avg 1.00
2020-04-15 07:03:27.527 27371-27415/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: C4ReplicatorListener.statusChanged, context: Replicator{@c07d7b3,<-,Database{@49ce904, name=‘common’},URLEndpoint{url=wss://cb-gateway-location/bucketName}], status: C4ReplicatorStatus{activityLevel=0, progressUnitsCompleted=0, progressUnitsTotal=0, progressDocumentCount=0, errorDomain=0, errorCode=0, errorInternalInfo=0}
2020-04-15 07:03:27.529 27371-27414/com.couchbaselite_tutorial V/CouchbaseLite/DATABASE: {DB#1} Pre-close housekeeping: 0 of 18 pages free (0%)
2020-04-15 07:03:27.532 27371-27414/com.couchbaselite_tutorial V/CouchbaseLite/DATABASE: {DB#1} Closed SQLite database
2020-04-15 07:03:27.535 27371-27414/com.couchbaselite_tutorial I/CouchbaseLite/DATABASE: {DB#1} Closing database
2020-04-15 07:03:27.536 27371-27432/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: Replicator{@c07d7b3,<-,Database{@49ce904, name=‘common’},URLEndpoint{url=wss://cb-gateway-location/bucketName}]: status changed: C4ReplicatorStatus{activityLevel=0, progressUnitsCompleted=0, progressUnitsTotal=0, progressDocumentCount=0, errorDomain=0, errorCode=0, errorInternalInfo=0}
2020-04-15 07:03:27.537 27371-27432/com.couchbaselite_tutorial I/CouchbaseLite/REPLICATOR: Replicator{@c07d7b3,<-,Database{@49ce904, name=‘common’},URLEndpoint{url=wss://cb-gateway-location/bucketName}] is stopped, progress 0/0, error: null
2020-04-15 07:03:27.538 27371-27371/com.couchbaselite_tutorial I/Replicator has synced all the buckets: Status Code :: Status{activityLevel=STOPPED, progress=Progress{completed=0, total=0}, error=null}