@@ -1,5 +1,5 @@
1import React, { useCallback, useEffect, useMemo } from 'react';
1import React, { useCallback, useEffect, useMemo } from 'react';
2−import { Just, Nothing } from 'folktale/maybe';
2+import { Just, Nothing, Result } from 'folktale/maybe';
3import { Grid, H5, HelpText, LinkButton, Flex } from 'indigo-react';
3import { Grid, H5, HelpText, LinkButton, Flex } from 'indigo-react';
4import { get } from 'lodash';
4import { get } from 'lodash';
@@ -15,6 +15,7 @@ import useIsEclipticOwner from 'lib/useIsEclipticOwner';
15import { useSyncKnownPoints, useSyncOwnedPoints } from 'lib/useSyncPoints';
15import { useSyncKnownPoints, useSyncOwnedPoints } from 'lib/useSyncPoints';
16import useRejectedIncomingPointTransfers from 'lib/useRejectedIncomingPointTransfers';
16import useRejectedIncomingPointTransfers from 'lib/useRejectedIncomingPointTransfers';
17import pluralize from 'lib/pluralize';
17import pluralize from 'lib/pluralize';
18+import newGithubIssueUrl from 'new-github-issue-url';
19import View from 'components/View';
20import View from 'components/View';
20import Blinky from 'components/Blinky';
21import Blinky from 'components/Blinky';
@@ -223,6 +224,36 @@ export default function Points() {
227+ // if we got an error result, we should display it, instead of showing
228+ // a potentially inaccurately empty point list.
231+ Just.hasInstance(controlledPoints) &&
232+ controlledPoints.value.matchWith({
237+ const url = newGithubIssueUrl({
240+ title: controlledPoints.value.value,
241+ body: `<!-- Please provide some context. Do you have Metamask installed? What login method did you use? -->`,
246+ <Grid.Item full as={HelpText} className="mt8 t-center">
247+ {controlledPoints.value.value}
249+ Try reloading the page. If this problem persists, please{' '}
250+ <a href={url}>file an issue on GitHub</a>.
227 loading ||
258 loading ||
228 (allPoints.length === 1 &&
259 (allPoints.length === 1 &&