It turns out that when you have a query that uses no-cache, calling refetch won't update every every instance of that query. This was causing inconsistent behavior based on what screen you were on, and sometimes showing two error messages at the same time.
This diff simplifies the data fetching for repository locations to always pull data from the WorkspaceContext. The state observer logic has also been updated to call refetch on the root repository locations query. The only tradeoff here is that if you're in a location that has error-ed out, you will see an error screen immediately. The previous complexity was to provide an intermediary message before they head over to the repository-locations page to debug. It seems fine to error out because users can't do anything until the location is back up anyway, and their next immediate action is the same in either case.