js-libp2p icon indicating copy to clipboard operation
js-libp2p copied to clipboard

Better browser error handling when dial fails

Open vasco-santos opened this issue 4 years ago • 1 comments

@D4nte commented on Thu Apr 22 2021

When not passing any filter in the browser, I understand that filter dnsWsOrWss is being used. When trying to connect to an ip4 ws address, it fails due to the filter, however the error returned by libp2p is very obscure (see below).

Would there be a way to make this error point to the filter instead?

libp2p:dialer:err AggregateError@http://localhost:3000/static/js/vendors~main.chunk.js:1284:5
maybeSettle@http://localhost:3000/static/js/vendors~main.chunk.js:104218:14
pSome/</<@http://localhost:3000/static/js/vendors~main.chunk.js:104256:27
async*pSome/<@http://localhost:3000/static/js/vendors~main.chunk.js:104260:7
PCancelable/this._promise<@http://localhost:3000/static/js/vendors~main.chunk.js:104342:14
PCancelable@http://localhost:3000/static/js/vendors~main.chunk.js:104313:21
pSome@http://localhost:3000/static/js/vendors~main.chunk.js:104194:38
../node_modules/p-any/index.js/module.exports@http://localhost:3000/static/js/vendors~main.chunk.js:103726:30
run@http://localhost:3000/static/js/vendors~main.chunk.js:58575:20
_createPendingDial@http://localhost:3000/static/js/vendors~main.chunk.js:58849:28
connectToPeer@http://localhost:3000/static/js/vendors~main.chunk.js:58754:71
async*_maybeConnect@http://localhost:3000/static/js/vendors~main.chunk.js:60533:29
_onDidStart/<@http://localhost:3000/static/js/vendors~main.chunk.js:60481:12
emit@http://localhost:3000/static/js/vendors~main.chunk.js:158572:17
add@http://localhost:3000/static/js/vendors~main.chunk.js:62771:16
_createDialTarget@http://localhost:3000/static/js/vendors~main.chunk.js:58790:34
connectToPeer@http://localhost:3000/static/js/vendors~main.chunk.js:58748:35
_dial@http://localhost:3000/static/js/vendors~main.chunk.js:60336:38
dialProtocol@http://localhost:3000/static/js/vendors~main.chunk.js:60312:35
dial@http://localhost:3000/static/js/main.chunk.js:224:23
initWaku@http://localhost:3000/static/js/main.chunk.js:3595:22
async*App/<@http://localhost:3000/static/js/main.chunk.js:3606:7
invokePassiveEffectCreate@http://localhost:3000/static/js/vendors~main.chunk.js:190984:24
callCallback@http://localhost:3000/static/js/vendors~main.chunk.js:171600:18
invokeGuardedCallbackDev@http://localhost:3000/static/js/vendors~main.chunk.js:171649:20
invokeGuardedCallback@http://localhost:3000/static/js/vendors~main.chunk.js:171709:35
flushPassiveEffectsImpl@http://localhost:3000/static/js/vendors~main.chunk.js:191066:34
unstable_runWithPriority@http://localhost:3000/static/js/vendors~main.chunk.js:203136:16
runWithPriority$1@http://localhost:3000/static/js/vendors~main.chunk.js:179006:14
flushPassiveEffects@http://localhost:3000/static/js/vendors~main.chunk.js:190943:18
commitBeforeMutationEffects/<@http://localhost:3000/static/js/vendors~main.chunk.js:190824:15
workLoop@http://localhost:3000/static/js/vendors~main.chunk.js:203086:46
flushWork@http://localhost:3000/static/js/vendors~main.chunk.js:203060:18
performWorkUntilDeadline@http://localhost:3000/static/js/vendors~main.chunk.js:202826:52
EventHandlerNonNull*./node_modules/scheduler/cjs/scheduler.development.js/<@http://localhost:3000/static/js/vendors~main.chunk.js:202850:7
./node_modules/scheduler/cjs/scheduler.development.js@http://localhost:3000/static/js/vendors~main.chunk.js:203306:5
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
fn@http://localhost:3000/static/js/bundle.js:151:20
./node_modules/scheduler/index.js@http://localhost:3000/static/js/vendors~main.chunk.js:203322:20
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
fn@http://localhost:3000/static/js/bundle.js:151:20
./node_modules/react-dom/cjs/react-dom.development.js/<@http://localhost:3000/static/js/vendors~main.chunk.js:167700:40
./node_modules/react-dom/cjs/react-dom.development.js@http://localhost:3000/static/js/vendors~main.chunk.js:193696:5
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
fn@http://localhost:3000/static/js/bundle.js:151:20
./node_modules/react-dom/index.js@http://localhost:3000/static/js/vendors~main.chunk.js:193739:20
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
fn@http://localhost:3000/static/js/bundle.js:151:20
./src/index.tsx/<@http://localhost:3000/static/js/main.chunk.js:4473:86
./src/index.tsx@http://localhost:3000/static/js/main.chunk.js:4574:30
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
fn@http://localhost:3000/static/js/bundle.js:151:20
1@http://localhost:3000/static/js/main.chunk.js:4588:18
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
checkDeferredModules@http://localhost:3000/static/js/bundle.js:46:23
webpackJsonpCallback@http://localhost:3000/static/js/bundle.js:33:19
@http://localhost:3000/static/js/main.chunk.js:1:69
 +0ms common.js:111
libp2p:dialer:err AggregateError@http://localhost:3000/static/js/vendors~main.chunk.js:1284:5
maybeSettle@http://localhost:3000/static/js/vendors~main.chunk.js:104218:14
pSome/</<@http://localhost:3000/static/js/vendors~main.chunk.js:104256:27
async*pSome/<@http://localhost:3000/static/js/vendors~main.chunk.js:104260:7
PCancelable/this._promise<@http://localhost:3000/static/js/vendors~main.chunk.js:104342:14
PCancelable@http://localhost:3000/static/js/vendors~main.chunk.js:104313:21
pSome@http://localhost:3000/static/js/vendors~main.chunk.js:104194:38
../node_modules/p-any/index.js/module.exports@http://localhost:3000/static/js/vendors~main.chunk.js:103726:30
run@http://localhost:3000/static/js/vendors~main.chunk.js:58575:20
_createPendingDial@http://localhost:3000/static/js/vendors~main.chunk.js:58849:28
connectToPeer@http://localhost:3000/static/js/vendors~main.chunk.js:58754:71
async*_maybeConnect@http://localhost:3000/static/js/vendors~main.chunk.js:60533:29
_onDidStart/<@http://localhost:3000/static/js/vendors~main.chunk.js:60481:12
emit@http://localhost:3000/static/js/vendors~main.chunk.js:158572:17
add@http://localhost:3000/static/js/vendors~main.chunk.js:62771:16
_createDialTarget@http://localhost:3000/static/js/vendors~main.chunk.js:58790:34
connectToPeer@http://localhost:3000/static/js/vendors~main.chunk.js:58748:35
_dial@http://localhost:3000/static/js/vendors~main.chunk.js:60336:38
dialProtocol@http://localhost:3000/static/js/vendors~main.chunk.js:60312:35
dial@http://localhost:3000/static/js/main.chunk.js:224:23
initWaku@http://localhost:3000/static/js/main.chunk.js:3595:22
async*App/<@http://localhost:3000/static/js/main.chunk.js:3606:7
invokePassiveEffectCreate@http://localhost:3000/static/js/vendors~main.chunk.js:190984:24
callCallback@http://localhost:3000/static/js/vendors~main.chunk.js:171600:18
invokeGuardedCallbackDev@http://localhost:3000/static/js/vendors~main.chunk.js:171649:20
invokeGuardedCallback@http://localhost:3000/static/js/vendors~main.chunk.js:171709:35
flushPassiveEffectsImpl@http://localhost:3000/static/js/vendors~main.chunk.js:191066:34
unstable_runWithPriority@http://localhost:3000/static/js/vendors~main.chunk.js:203136:16
runWithPriority$1@http://localhost:3000/static/js/vendors~main.chunk.js:179006:14
flushPassiveEffects@http://localhost:3000/static/js/vendors~main.chunk.js:190943:18
commitBeforeMutationEffects/<@http://localhost:3000/static/js/vendors~main.chunk.js:190824:15
workLoop@http://localhost:3000/static/js/vendors~main.chunk.js:203086:46
flushWork@http://localhost:3000/static/js/vendors~main.chunk.js:203060:18
performWorkUntilDeadline@http://localhost:3000/static/js/vendors~main.chunk.js:202826:52
EventHandlerNonNull*./node_modules/scheduler/cjs/scheduler.development.js/<@http://localhost:3000/static/js/vendors~main.chunk.js:202850:7
./node_modules/scheduler/cjs/scheduler.development.js@http://localhost:3000/static/js/vendors~main.chunk.js:203306:5
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
fn@http://localhost:3000/static/js/bundle.js:151:20
./node_modules/scheduler/index.js@http://localhost:3000/static/js/vendors~main.chunk.js:203322:20
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
fn@http://localhost:3000/static/js/bundle.js:151:20
./node_modules/react-dom/cjs/react-dom.development.js/<@http://localhost:3000/static/js/vendors~main.chunk.js:167700:40
./node_modules/react-dom/cjs/react-dom.development.js@http://localhost:3000/static/js/vendors~main.chunk.js:193696:5
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
fn@http://localhost:3000/static/js/bundle.js:151:20
./node_modules/react-dom/index.js@http://localhost:3000/static/js/vendors~main.chunk.js:193739:20
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
fn@http://localhost:3000/static/js/bundle.js:151:20
./src/index.tsx/<@http://localhost:3000/static/js/main.chunk.js:4473:86
./src/index.tsx@http://localhost:3000/static/js/main.chunk.js:4574:30
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
fn@http://localhost:3000/static/js/bundle.js:151:20
1@http://localhost:3000/static/js/main.chunk.js:4588:18
__webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
checkDeferredModules@http://localhost:3000/static/js/bundle.js:46:23
webpackJsonpCallback@http://localhost:3000/static/js/bundle.js:33:19
@http://localhost:3000/static/js/main.chunk.js:1:69
 +1ms common.js:111
libp2p:err could not connect to discovered peer +0ms AggregateError: 
    dial@http://localhost:3000/static/js/vendors~main.chunk.js:66377:21
    dialAction@http://localhost:3000/static/js/vendors~main.chunk.js:58833:36
    run/<@http://localhost:3000/static/js/vendors~main.chunk.js:58582:29
    Async*run@http://localhost:3000/static/js/vendors~main.chunk.js:58575:36
    _createPendingDial@http://localhost:3000/static/js/vendors~main.chunk.js:58849:28
    connectToPeer@http://localhost:3000/static/js/vendors~main.chunk.js:58754:71
    async*_maybeConnect@http://localhost:3000/static/js/vendors~main.chunk.js:60533:29
    _onDidStart/<@http://localhost:3000/static/js/vendors~main.chunk.js:60481:12
    emit@http://localhost:3000/static/js/vendors~main.chunk.js:158572:17
    add@http://localhost:3000/static/js/vendors~main.chunk.js:62771:16
    _createDialTarget@http://localhost:3000/static/js/vendors~main.chunk.js:58790:34
    connectToPeer@http://localhost:3000/static/js/vendors~main.chunk.js:58748:35
    _dial@http://localhost:3000/static/js/vendors~main.chunk.js:60336:38
    dialProtocol@http://localhost:3000/static/js/vendors~main.chunk.js:60312:35
    dial@http://localhost:3000/static/js/main.chunk.js:224:23
    initWaku@http://localhost:3000/static/js/main.chunk.js:3595:22
    async*App/<@http://localhost:3000/static/js/main.chunk.js:3606:7
    invokePassiveEffectCreate@http://localhost:3000/static/js/vendors~main.chunk.js:190984:24
    callCallback@http://localhost:3000/static/js/vendors~main.chunk.js:171600:18
    invokeGuardedCallbackDev@http://localhost:3000/static/js/vendors~main.chunk.js:171649:20
    invokeGuardedCallback@http://localhost:3000/static/js/vendors~main.chunk.js:171709:35
    flushPassiveEffectsImpl@http://localhost:3000/static/js/vendors~main.chunk.js:191066:34
    unstable_runWithPriority@http://localhost:3000/static/js/vendors~main.chunk.js:203136:16
    runWithPriority$1@http://localhost:3000/static/js/vendors~main.chunk.js:179006:14
    flushPassiveEffects@http://localhost:3000/static/js/vendors~main.chunk.js:190943:18
    commitBeforeMutationEffects/<@http://localhost:3000/static/js/vendors~main.chunk.js:190824:15
    workLoop@http://localhost:3000/static/js/vendors~main.chunk.js:203086:46
    flushWork@http://localhost:3000/static/js/vendors~main.chunk.js:203060:18
    performWorkUntilDeadline@http://localhost:3000/static/js/vendors~main.chunk.js:202826:52
    EventHandlerNonNull*./node_modules/scheduler/cjs/scheduler.development.js/<@http://localhost:3000/static/js/vendors~main.chunk.js:202850:7
    ./node_modules/scheduler/cjs/scheduler.development.js@http://localhost:3000/static/js/vendors~main.chunk.js:203306:5
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    fn@http://localhost:3000/static/js/bundle.js:151:20
    ./node_modules/scheduler/index.js@http://localhost:3000/static/js/vendors~main.chunk.js:203322:20
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    fn@http://localhost:3000/static/js/bundle.js:151:20
    ./node_modules/react-dom/cjs/react-dom.development.js/<@http://localhost:3000/static/js/vendors~main.chunk.js:167700:40
    ./node_modules/react-dom/cjs/react-dom.development.js@http://localhost:3000/static/js/vendors~main.chunk.js:193696:5
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    fn@http://localhost:3000/static/js/bundle.js:151:20
    ./node_modules/react-dom/index.js@http://localhost:3000/static/js/vendors~main.chunk.js:193739:20
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    fn@http://localhost:3000/static/js/bundle.js:151:20
    ./src/index.tsx/<@http://localhost:3000/static/js/main.chunk.js:4473:86
    ./src/index.tsx@http://localhost:3000/static/js/main.chunk.js:4574:30
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    fn@http://localhost:3000/static/js/bundle.js:151:20
    1@http://localhost:3000/static/js/main.chunk.js:4588:18
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    checkDeferredModules@http://localhost:3000/static/js/bundle.js:46:23
    webpackJsonpCallback@http://localhost:3000/static/js/bundle.js:33:19
    @http://localhost:3000/static/js/main.chunk.js:1:69
    AggregateError index.js:33
    maybeSettle index.js:31
    pSome index.js:69
    pSome index.js:73
    _promise index.js:61
    PCancelable index.js:31
    pSome index.js:7
    exports index.js:6
    run dial-request.js:67
    _createPendingDial index.js:205
    connectToPeer index.js:115
    _maybeConnect index.js:698
    _onDidStart index.js:646
    emit events.js:153
    add address-book.js:259
    _createDialTarget index.js:146
    connectToPeer index.js:110
    _dial index.js:500
    dialProtocol index.js:480
    dial waku.ts:87
    initWaku App.tsx:48
    App App.tsx:60
    React 5
    unstable_runWithPriority scheduler.development.js:468
    React 3
    workLoop scheduler.development.js:417
    flushWork scheduler.development.js:390
    performWorkUntilDeadline scheduler.development.js:157
    js scheduler.development.js:180
    js scheduler.development.js:645
    Webpack 21
common.js:111
Error when dialing peer  AggregateError: 
    dial@http://localhost:3000/static/js/vendors~main.chunk.js:66377:21
    dialAction@http://localhost:3000/static/js/vendors~main.chunk.js:58833:36
    run/<@http://localhost:3000/static/js/vendors~main.chunk.js:58582:29
    Async*run@http://localhost:3000/static/js/vendors~main.chunk.js:58575:36
    _createPendingDial@http://localhost:3000/static/js/vendors~main.chunk.js:58849:28
    connectToPeer@http://localhost:3000/static/js/vendors~main.chunk.js:58754:71
    async*_maybeConnect@http://localhost:3000/static/js/vendors~main.chunk.js:60533:29
    _onDidStart/<@http://localhost:3000/static/js/vendors~main.chunk.js:60481:12
    emit@http://localhost:3000/static/js/vendors~main.chunk.js:158572:17
    add@http://localhost:3000/static/js/vendors~main.chunk.js:62771:16
    _createDialTarget@http://localhost:3000/static/js/vendors~main.chunk.js:58790:34
    connectToPeer@http://localhost:3000/static/js/vendors~main.chunk.js:58748:35
    _dial@http://localhost:3000/static/js/vendors~main.chunk.js:60336:38
    dialProtocol@http://localhost:3000/static/js/vendors~main.chunk.js:60312:35
    dial@http://localhost:3000/static/js/main.chunk.js:224:23
    initWaku@http://localhost:3000/static/js/main.chunk.js:3595:22
    async*App/<@http://localhost:3000/static/js/main.chunk.js:3606:7
    invokePassiveEffectCreate@http://localhost:3000/static/js/vendors~main.chunk.js:190984:24
    callCallback@http://localhost:3000/static/js/vendors~main.chunk.js:171600:18
    invokeGuardedCallbackDev@http://localhost:3000/static/js/vendors~main.chunk.js:171649:20
    invokeGuardedCallback@http://localhost:3000/static/js/vendors~main.chunk.js:171709:35
    flushPassiveEffectsImpl@http://localhost:3000/static/js/vendors~main.chunk.js:191066:34
    unstable_runWithPriority@http://localhost:3000/static/js/vendors~main.chunk.js:203136:16
    runWithPriority$1@http://localhost:3000/static/js/vendors~main.chunk.js:179006:14
    flushPassiveEffects@http://localhost:3000/static/js/vendors~main.chunk.js:190943:18
    commitBeforeMutationEffects/<@http://localhost:3000/static/js/vendors~main.chunk.js:190824:15
    workLoop@http://localhost:3000/static/js/vendors~main.chunk.js:203086:46
    flushWork@http://localhost:3000/static/js/vendors~main.chunk.js:203060:18
    performWorkUntilDeadline@http://localhost:3000/static/js/vendors~main.chunk.js:202826:52
    EventHandlerNonNull*./node_modules/scheduler/cjs/scheduler.development.js/<@http://localhost:3000/static/js/vendors~main.chunk.js:202850:7
    ./node_modules/scheduler/cjs/scheduler.development.js@http://localhost:3000/static/js/vendors~main.chunk.js:203306:5
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    fn@http://localhost:3000/static/js/bundle.js:151:20
    ./node_modules/scheduler/index.js@http://localhost:3000/static/js/vendors~main.chunk.js:203322:20
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    fn@http://localhost:3000/static/js/bundle.js:151:20
    ./node_modules/react-dom/cjs/react-dom.development.js/<@http://localhost:3000/static/js/vendors~main.chunk.js:167700:40
    ./node_modules/react-dom/cjs/react-dom.development.js@http://localhost:3000/static/js/vendors~main.chunk.js:193696:5
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    fn@http://localhost:3000/static/js/bundle.js:151:20
    ./node_modules/react-dom/index.js@http://localhost:3000/static/js/vendors~main.chunk.js:193739:20
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    fn@http://localhost:3000/static/js/bundle.js:151:20
    ./src/index.tsx/<@http://localhost:3000/static/js/main.chunk.js:4473:86
    ./src/index.tsx@http://localhost:3000/static/js/main.chunk.js:4574:30
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    fn@http://localhost:3000/static/js/bundle.js:151:20
    1@http://localhost:3000/static/js/main.chunk.js:4588:18
    __webpack_require__@http://localhost:3000/static/js/bundle.js:852:31
    checkDeferredModules@http://localhost:3000/static/js/bundle.js:46:23
    webpackJsonpCallback@http://localhost:3000/static/js/bundle.js:33:19
    @http://localhost:3000/static/js/main.chunk.js:1:69
    AggregateError index.js:33
    maybeSettle index.js:31
    pSome index.js:69
    pSome index.js:73
    _promise index.js:61
    PCancelable index.js:31
    pSome index.js:7
    exports index.js:6
    run dial-request.js:67
    _createPendingDial index.js:205
    connectToPeer index.js:115
    _maybeConnect index.js:698
    _onDidStart index.js:646
    emit events.js:153
    add address-book.js:259
    _createDialTarget index.js:146
    connectToPeer index.js:110
    _dial index.js:500
    dialProtocol index.js:480
    dial waku.ts:87
    initWaku App.tsx:48
    App App.tsx:60
    React 5
    unstable_runWithPriority scheduler.development.js:468
    React 3
    workLoop scheduler.development.js:417
    flushWork scheduler.development.js:390
    performWorkUntilDeadline scheduler.development.js:157
    js scheduler.development.js:180
    js scheduler.development.js:645
    Webpack 21

@vasco-santos commented on Thu Apr 22 2021

Yeah, the errors in the browser are not great. This is not an issue with this module, as this module just says to libp2p "I don't have any way to connect to the provided address(es)", but from js-libp2p itself (moving the issue there!)

These error is thrown from:

The aggregateError from p-any aims to show all the errors from the dial attempts for each multiaddr of a peer. Would you like to submit a PR proposing an enhancement for this?

vasco-santos avatar Apr 22 '21 08:04 vasco-santos

@http://localhost:3000/static/js/bundle.js:11402:13 webpack_require@http://localhost:3000/static/js/bundle.js:556:30 fn@http://localhost:3000/static/js/bundle.js:87:20 @http://localhost:3000/static/js/bundle.js:591:19 webpack_require@http://localhost:3000/static/js/bundle.js:556:30 @http://localhost:3000/static/js/bundle.js:579:37 @http://localhost:3000/static/js/bundle.js:582:10

pajacobjean avatar Jun 22 '22 15:06 pajacobjean

This has been fixed as we now extract errors out of the Aggregate Error type and we also only dial one address at a time per peer.

maschad avatar Sep 28 '23 20:09 maschad