Looking at ScopeImpl.cpp I'm not sure how search can throw (btw, Scope.h docstrings don't mention throwing an exception). As far as I understand the code, search catches all exceptions and just calls ro->finished(CompletionDetails(CompletionDetails::Error, e.what())) on error. But this doesn't happen with our case as far as I can tell (our listener implementes finished() and prints a message). Also, shell code does have try-catch around search & logs an error, but I didn't see it in the logs - the last message we have in shell logs is "Dispatching search: <scope id>" and it gets stuck there.
I made scopes-client tool hang by just executing search against the misbehaving scope with it:
$ scopes-client com.ubuntu.developer.boghison.mixcloud_mixcloudscope ""
Looking at ScopeImpl.cpp I'm not sure how search can throw (btw, Scope.h docstrings don't mention throwing an exception). As far as I understand the code, search catches all exceptions and just calls ro->finished( CompletionDetai ls(CompletionDe tails:: Error, e.what())) on error. But this doesn't happen with our case as far as I can tell (our listener implementes finished() and prints a message). Also, shell code does have try-catch around search & logs an error, but I didn't see it in the logs - the last message we have in shell logs is "Dispatching search: <scope id>" and it gets stuck there.
I made scopes-client tool hang by just executing search against the misbehaving scope with it: developer. boghison. mixcloud_ mixcloudscope ""
$ scopes-client com.ubuntu.