I am this code for saving single couchbase document.
Observable inserted = couchbaseBucket.async()
.upsert(RawJsonDocument.create(documentId, expirationTime, convertObjectToJson(object)));
inserted.doOnError(erros -> LOGGER.error(“saveOrUpdate::Error while saving document”, erros))
.doOnCompleted(() -> LOGGER.debug(“saveOrUpdate::Save Successfully”))
.onErrorResumeNext(Observable.empty()).toBlocking()
.singleOrDefault(null);
This works fine most of the time, but sometimes it doesn’t save the document. And more surprisingly doesn’t return any error. Neither on complete block gets called.
I even tried retry logic to make it failsafe like mentioned below but results are same
Observable upsertObservable = couchbaseBucket.async()
.upsert(RawJsonDocument.create(documentId, expirationTime, convertObjectToJson(object))).
retryWhen(RetryBuilder.anyOf(CouchbaseException.class,RuntimeException.class).
delay(Delay.exponential(TimeUnit.MILLISECONDS, 30)).max(10).build());upsertObservable.toBlocking() .singleOrDefault(null);
Please point if I am doing anything wrong?