See PHI1866. Currently arc fatals outright if a ConduitFuture raises a non-Conduit exception. This is a consequence of reorganized exception handling behavior after D21384. This is easy to fix.
After the fix, the behavior could still be improved. For example:
$ arc branches --conduit-uri=http://example.org [2020-09-17 13:16:21] EXCEPTION: (HTTPFutureHTTPResponseStatus) [HTTP/404] Not Found <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>404 - Not Found</title> </head> <body> <h1>404 - Not Found</h1> <script type="text/javascript" src="//wpc.75674.betacdn.net/0075674/www/ec_tpm_bcon.js"></script> </body> </html> at [<arcanist>/src/future/http/BaseHTTPFuture.php:382] ...
This could be more user-friendly than it is ("Configured Conduit URI X does not seem to be working...").