anvilresearch / connect-cli

CLI for Anvil Connect
MIT License
3 stars 11 forks source link

Error Handling not reporting causes #75

Open uberfirestone opened 9 years ago

uberfirestone commented 9 years ago

Numerous catch blocks in the error handling for CLI commands do not report the root errors which can make troubleshooting very difficult.

Example 1 - In a number of places, code like this appears - in our case, on a setup command, we were having SSL issues but could not see the root error until we edited the catch to log the error.

          .catch(function () {
            cli.log.error(issuerUri + ' does not point to an Anvil Connect server')
            process.exit(1)
          })

Example 2 - While this did not cause us issues, I saw several lines like this in the code - once again, no useful output for troubleshooting.

                  } catch (e) {
                    cli.log.error('Couldn\'t write configuration file')
                    process.exit(1)
                  }

I would recommend logging err.stack||err.message||err in all these cases. If worried about it being too verbose, then you could add a command line argument to suppress (or enable) the detail...but just losing the detail makes troubleshooting much more difficult.

uberfirestone commented 9 years ago

Example problem 3 - this line outputs [object Object] which is not very helpful

Problem 4 - The StatusCodeError used by request-promise did not provide any useful details beyond the status code - some way to see the response body for further details would help diagnose...found while troubleshooting #52

simonrenoult commented 8 years ago

:+1:

ikb42 commented 8 years ago

Worse still, as noted on another item, nvl setup: things like complex passwords are required but the error just says [object object], the worse still part is that the error doesn't occur right after the password field, it is 2 fields later that Setup exits which does not help with guessing what the issue could be.