js-libp2p
js-libp2p copied to clipboard
Better browser error handling when dial fails
@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:
p-any- dial-request when trying to dial all the addresses for the peer
- dialer connect to the peer
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?
@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
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.