I'm not sure how much control appium has over adb and its return codes, but my test run failed with
2013-11-21 12:51:37,720 [DEBUG] mats.exec_logger.AppiumServer:error: Activity used to start app doesn't exist! Make sure it exists [service.py:47]
when the root cause was the previously run command:
2013-11-21T18:51:35.391Z - debug: executing: "/.../platform-tools/adb" -s emulator-5554 shell pm install -r /data/local/tmp/97f063dd63f1909a776e729aabc930ce.apk
which threw no error as far as I saw. The uncaught or unreported error I found when I tried the adb cmd on the cmd line was:
$ "/.../platform-tools/adb" -s emulator-5554 shell pm install -r /data/local/tmp/97f063dd63f1909a776e729aabc930ce.apk
pkg: /data/local/tmp/97f063dd63f1909a776e729aabc930ce.apk
Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY]
So it was pretty easy to see what happened, but it would be a nice to have if appium caught any adb error and raised it.
I just realized maybe this is not the place for such a request...