Hi all,

First of all, thank you for such a great library! Recently, we have been 
encountering some issues that may or may not be CouchbaseLite related, 
where the user's app is crashing for no known reason. Many things have been 
ruled out, so we are left with considering some stretch ideas at this 
point. One is that we have noticed in our crash manager that we never have 
any crashes or errors logged from Couchbase. This could mean the product is 
perfect :D, or it could mean that we aren't doing our part to enable 
exceptions passing through to a log system.

Our test was to add some blatantly wrong code in a view function and run it 
on the XCode debugger. Below is the snippet of code. When running in the 
debugger, nothing crashes and no errors are generated. The app continues to 
function normally, but there is no data pulled into the tableview (since 
the view function has code that would generate the exception).


```
    CBLView* dbView = [self.database viewNamed:@"dbVIew"];
    [dbView setMapBlock: MAPBLOCK({
        NSString* const typeKey = NSStringFromSelector(@selector(type));
            // Added array out of bounds exception generating code
            NSArray* array = @[];
            DDLogWarn(@"dbView: %@", array[1]);
            
            emit(doc[typeKey], nil);
    }) version:@"1.4.6"];

    return [sortedByDateView createQuery];
```

This code is being executed, as without the 2 lines that could cause an 
error, the app would function perfectly fine. 
The query is passed a pointer to an NSError* object, but that error object 
is still nil. 
The version of the view was incremented after adding the error lines to the 
view body.

We are using CouchbaseLite iOS 1.4.1 downloaded from the www.couchbase.com 
website.

Is there any way to propagate errors to the app so we can find issues? We 
do have logging enabled via the following code, but still do not see any 
relevant lines printing out.

        [CBLManager redirectLogging:^(NSString * _Nonnull type, NSString * 
_Nonnull message) {
            DDLogDebug(@"%@: %@", type, message);
        }];
        [CBLManager enableLogging:@"Database"];
        [CBLManager enableLogging:@"ViewVerbose"];
        [CBLManager enableLogging:@"QueryVerbose"];
        [CBLManager enableLogging:@"Upgrade"];

Ultimately, I guess what I'm asking is whether there is some way to enable 
Couchbase Lite to pass its errors on to us instead of what seems like 
silencing them, so that we may be able to solve our users' non-reproducible 
issues? Though it sounds weird, we would almost prefer to have issues 
caught in our crash manager (hockey) so we would at least know that there 
is a problem. Let me know what we need to do to make that happen :D

Cheers,
Ragu


-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mobile-couchbase/1869e127-d9dd-4775-9d69-95bce2bfcd5c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to