chore: add error handling for an uncaught dial attempt (#1660)

This commit is contained in:
Danish Arora 2023-10-13 17:33:42 +05:30 committed by GitHub
parent d39d4507ef
commit e6527e9ab1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 10 deletions

View File

@ -226,9 +226,16 @@ export class ConnectionManager
try {
const error = this.dialErrorsForPeer.get(peerId.toString());
if (error) {
let errorMessage;
if (error instanceof AggregateError) {
if (!error.errors) {
log(`No errors array found for AggregateError`);
} else if (error.errors.length === 0) {
log(`Errors array is empty for AggregateError`);
} else {
errorMessage = JSON.stringify(error.errors[0]);
}
} else {
errorMessage = error.message;
}
@ -236,6 +243,7 @@ export class ConnectionManager
log(
`Deleting undialable peer ${peerId.toString()} from peer store. Error: ${errorMessage}`
);
}
this.dialErrorsForPeer.delete(peerId.toString());
await this.libp2p.peerStore.delete(peerId);
@ -314,7 +322,7 @@ export class ConnectionManager
if (!(await this.shouldDialPeer(peerId))) return;
this.dialPeer(peerId).catch((err) => {
throw `Error dialing peer ${peerId.toString()} : ${err}`;
log(`Error dialing peer ${peerId.toString()} : ${err}`);
});
}