Page MenuHomePhabricator

Exception handling in ConduitFuture for raw HTTP exceptions lacks tailoring
Open, LowPublic

Description

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...").